{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "learning a [Mackey-Glass](http://www.scholarpedia.org/article/Mackey-Glass_equation) system"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "W [[-0.12545988  0.45071431  0.23199394 ... -0.42226536  0.47439481\n",
      "   0.48621074]\n",
      " [ 0.19816171  0.03609637 -0.19047238 ... -0.36318137  0.45023735\n",
      "  -0.05399423]\n",
      " [-0.31486707  0.04190095  0.37294584 ... -0.03650596 -0.12021422\n",
      "   0.36333365]\n",
      " ...\n",
      " [-0.07116931 -0.06074964 -0.10034593 ... -0.12699197 -0.49490117\n",
      "   0.44395921]\n",
      " [-0.15521548 -0.02732846  0.37568577 ...  0.11311018  0.0855911\n",
      "  -0.03800561]\n",
      " [-0.42155965 -0.34405471  0.26013666 ... -0.37174631 -0.41521673\n",
      "  -0.30375001]]\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'W_in' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\mackey.ipynb Cell 2\u001b[0m line \u001b[0;36m8\n\u001b[0;32m      <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=3'>4</a>\u001b[0m get_ipython()\u001b[39m.\u001b[39mrun_line_magic(\u001b[39m'\u001b[39m\u001b[39mmatplotlib\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39minline\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m      <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=5'>6</a>\u001b[0m data \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mload(\u001b[39m'\u001b[39m\u001b[39mmackey_glass_t17.npy\u001b[39m\u001b[39m'\u001b[39m) \u001b[39m#  http://minds.jacobs-university.de/mantas/code\u001b[39;00m\n\u001b[1;32m----> <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=7'>8</a>\u001b[0m esn \u001b[39m=\u001b[39m ESN(n_inputs \u001b[39m=\u001b[39;49m \u001b[39m1\u001b[39;49m,\n\u001b[0;32m      <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=8'>9</a>\u001b[0m           n_outputs \u001b[39m=\u001b[39;49m \u001b[39m1\u001b[39;49m,\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=9'>10</a>\u001b[0m           n_reservoir \u001b[39m=\u001b[39;49m \u001b[39m500\u001b[39;49m,\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=10'>11</a>\u001b[0m           spectral_radius \u001b[39m=\u001b[39;49m \u001b[39m1.5\u001b[39;49m,\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=11'>12</a>\u001b[0m           random_state\u001b[39m=\u001b[39;49m\u001b[39m42\u001b[39;49m)\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=13'>14</a>\u001b[0m trainlen \u001b[39m=\u001b[39m \u001b[39m2000\u001b[39m\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W1sZmlsZQ%3D%3D?line=14'>15</a>\u001b[0m future \u001b[39m=\u001b[39m \u001b[39m2000\u001b[39m\n",
      "File \u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\pyESN.py:91\u001b[0m, in \u001b[0;36mESN.__init__\u001b[1;34m(self, n_inputs, n_outputs, n_reservoir, spectral_radius, sparsity, noise, input_shift, input_scaling, teacher_forcing, feedback_scaling, teacher_scaling, teacher_shift, out_activation, inverse_out_activation, random_state, silent)\u001b[0m\n\u001b[0;32m     89\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mteacher_forcing \u001b[39m=\u001b[39m teacher_forcing\n\u001b[0;32m     90\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39msilent \u001b[39m=\u001b[39m silent\n\u001b[1;32m---> 91\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49minitweights()\n",
      "File \u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\pyESN.py:111\u001b[0m, in \u001b[0;36mESN.initweights\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    108\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mW_feedb \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mrandom_state_\u001b[39m.\u001b[39mrand(\n\u001b[0;32m    109\u001b[0m     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mn_reservoir, \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mn_outputs) \u001b[39m*\u001b[39m \u001b[39m2\u001b[39m \u001b[39m-\u001b[39m \u001b[39m1\u001b[39m\n\u001b[0;32m    110\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m'\u001b[39m\u001b[39mW\u001b[39m\u001b[39m'\u001b[39m,W)\n\u001b[1;32m--> 111\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m'\u001b[39m\u001b[39mW_in\u001b[39m\u001b[39m'\u001b[39m,W_in)\n\u001b[0;32m    112\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m'\u001b[39m\u001b[39mW_feedb\u001b[39m\u001b[39m'\u001b[39m,W_feedb)\n",
      "\u001b[1;31mNameError\u001b[0m: name 'W_in' is not defined"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from pyESN import ESN\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "data = np.load('mackey_glass_t17.npy') #  http://minds.jacobs-university.de/mantas/code\n",
    "\n",
    "esn = ESN(n_inputs = 1,\n",
    "          n_outputs = 1,\n",
    "          n_reservoir = 500,\n",
    "          spectral_radius = 1.5,\n",
    "          random_state=42)\n",
    "\n",
    "trainlen = 2000\n",
    "future = 2000\n",
    "print(np.ones(trainlen).shape)\n",
    "print(data[:trainlen].shape)\n",
    "pred_training = esn.fit(np.ones(trainlen),data[:trainlen])\n",
    "\n",
    "prediction = esn.predict(np.ones(future))\n",
    "print('1',prediction.flatten())\n",
    "print('2',data[trainlen:trainlen+future])\n",
    "print(\"test error: \\n\"+str(np.sqrt(np.mean((prediction.flatten() - data[trainlen:trainlen+future])**2))))\n",
    "\n",
    "plt.figure(figsize=(11,1.5))\n",
    "plt.plot(range(0,trainlen+future),data[0:trainlen+future],'k',label=\"target system\")\n",
    "plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "lo,hi = plt.ylim()\n",
    "plt.plot([trainlen,trainlen],[lo+np.spacing(1),hi-np.spacing(1)],'k:')\n",
    "plt.legend(loc=(0.61,1.1),fontsize='x-small')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.          1.26        0.98333333]\n",
      " [ 1.026       1.51756667  0.96971111]\n",
      " [ 1.07515667  1.77972176  0.95942238]\n",
      " ...\n",
      " [ 2.93127998 -3.65144226 29.79740063]\n",
      " [ 2.27300776 -3.66761468 28.89576928]\n",
      " [ 1.67894551 -3.65129944 28.04185027]]\n",
      "W11 (3500, 3500)\n",
      "W_in (3500, 3)\n",
      "W_feedb (3500, 3)\n",
      "states (2500, 3500)\n",
      "transient 0\n",
      "inputs_scaled (2500, 3)\n",
      "extended_states (2500, 3503)\n",
      "teachers_scaled (2500, 3)\n",
      "extended_states [[ 2.93127965e-04  2.73570483e-04  1.15476766e-03 ...  1.01872185e-01\n",
      "  -1.72140668e-01  1.59201358e-01]\n",
      " [-3.73025531e-04  2.84276104e-04 -2.82256276e-03 ... -4.17932113e-02\n",
      "   2.80717321e-02  6.95382875e-03]\n",
      " [-8.27632392e-04  8.04599099e-04  7.75034422e-04 ...  2.74206590e-01\n",
      "  -1.71405798e-01  1.14327248e-01]\n",
      " ...\n",
      " [ 3.33333333e-01 -1.11811369e-15 -2.98511550e-17 ...  1.83260245e-14\n",
      "  -5.65067277e-14  4.52396767e-14]\n",
      " [ 3.33333333e-01  3.18672661e-16  1.18296956e-16 ... -4.35399747e-14\n",
      "   4.51746611e-14 -2.15436807e-14]\n",
      " [ 3.33333333e-01  6.51107794e-16 -1.19610813e-16 ...  2.52244222e-14\n",
      "   1.13530185e-14 -2.35867289e-14]]\n",
      "extended_states (3503, 2500)\n",
      "W out [[-0.19989269 -0.06506378 -0.47302354 ...  0.33333333  0.33333333\n",
      "   0.33333333]\n",
      " [-0.14942419 -0.03380228 -0.28922514 ...  0.42        0.42\n",
      "   0.42      ]\n",
      " [ 0.27340652  0.12978606  0.15197254 ...  0.32777778  0.32777778\n",
      "   0.32777778]]\n",
      "W_out (3, 3503)\n",
      "pred_train (2500, 3)\n",
      "test error: \n",
      "5.450491590469123\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x297eb60f150>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1100x150 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from pyESN import ESN\n",
    "from matplotlib import pyplot as plt\n",
    "import scipy.io as sio\n",
    "%matplotlib inline\n",
    "\n",
    "# 导入数据\n",
    "data = np.load('./data/hundun.npy') #  http://minds.jacobs-university.de/mantas/code\n",
    "print(data)\n",
    "\n",
    "esn = ESN(n_inputs = 3,\n",
    "          n_outputs = 3,\n",
    "          n_reservoir = 3500,\n",
    "          spectral_radius = 1.2,\n",
    "          sparsity=0.2,\n",
    "          noise = 0.005,\n",
    "          random_state=23)\n",
    "\n",
    "trainlen = 2500\n",
    "future = 100\n",
    "\n",
    "pred_training = esn.fit(np.ones((trainlen,3)),data[:trainlen])\n",
    "prediction = esn.predict(np.ones((future,3)))\n",
    "print(\"test error: \\n\"+str(np.sqrt(np.mean((prediction.flatten() - data[trainlen:trainlen+future].flatten())**2))))\n",
    "\n",
    "plt.figure(figsize=(11,1.5))\n",
    "\n",
    "# 只展示训练和预测部分\n",
    "plt.plot(range(0,trainlen+future),data[0:trainlen+future],'k',label=\"target system\")\n",
    "plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "\n",
    "# 只展示预测部分\n",
    "# plt.plot(range(trainlen,trainlen+future),data[trainlen:trainlen+future],'k',label=\"target system\")\n",
    "# plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "\n",
    "lo,hi = plt.ylim()\n",
    "plt.plot([trainlen,trainlen],[lo+np.spacing(1),hi-np.spacing(1)],'k:')\n",
    "plt.legend(loc=(0.61,1.1),fontsize='x-small')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[  1.70575524   4.35084781  -2.99888083]\n",
      " [  0.458328     4.04558994 -10.92806076]\n",
      " [  2.32338909  -1.9797046    5.27461247]\n",
      " ...\n",
      " [  5.11588983   0.83316225  27.95419406]\n",
      " [  2.06231905  -2.96355752  27.4989111 ]\n",
      " [  1.46649279  -5.03562222  35.31514497]]\n",
      "W11 (3500, 3500)\n",
      "W_in (3500, 3)\n",
      "W_feedb (3500, 3)\n",
      "states (2500, 3500)\n",
      "transient 0\n",
      "inputs_scaled (2500, 3)\n",
      "extended_states (2500, 3503)\n",
      "teachers_scaled (2500, 3)\n",
      "extended_states [[-1.54010393e-02  1.20104910e-03 -1.99719546e-04 ... -1.11711250e-03\n",
      "  -5.26901169e-03 -4.87864870e-03]\n",
      " [ 5.47944642e-03 -2.83988503e-04  1.54023939e-03 ... -6.05190437e-03\n",
      "   5.46387991e-03  4.52304362e-03]\n",
      " [ 1.00883960e-02 -4.62445298e-03 -3.14418277e-03 ... -4.02233046e-02\n",
      "   6.18104134e-03  1.40142292e-03]\n",
      " ...\n",
      " [ 3.33333333e-01 -3.19777088e-15 -1.74432883e-16 ... -2.97088336e-16\n",
      "  -1.12353203e-15 -1.19150600e-15]\n",
      " [ 3.33333333e-01  1.07869455e-15  9.53877683e-17 ...  1.01076187e-15\n",
      "   3.55359120e-16 -1.40126355e-16]\n",
      " [ 3.33333333e-01  1.98035922e-15  1.01084065e-16 ... -6.04990741e-16\n",
      "   7.83328023e-16  1.47523620e-15]]\n",
      "extended_states (3503, 2500)\n",
      "W out [[  -7.23463188   -3.37069241    3.80963061 ...    0.56858508\n",
      "     0.56858508    0.56858508]\n",
      " [ -13.64056787   12.55433845  -49.71588834 ...    1.4502826\n",
      "     1.4502826     1.4502826 ]\n",
      " [-114.19458059   50.26293207  131.3788406  ...   -0.99962694\n",
      "    -0.99962694   -0.99962694]]\n",
      "W_out (3, 3503)\n",
      "pred_train (2500, 3)\n",
      "test error: \n",
      "632.2868639696709\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x297e4f7e9d0>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6AAAAEGCAYAAAB7H/hrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABUxklEQVR4nO3deXwUVb7//1d3J+nOHrYsEEjCEsBAEjYhiICaERQVFxSU8aKODCDMV0DF9Q4yXK/zE72id7wg6kx01MsMDsqoCBfQ6IwGGSKZsAgDSNgTIJClO3t3/f7ALtOQQKLZgPfz8ahHajl1zqmu08sn51SVxTAMAxEREREREZFmZm3tCoiIiIiIiMilQQGoiIiIiIiItAgFoCIiIiIiItIiFICKiIiIiIhIi1AAKiIiIiIiIi1CAaiIiIiIiIi0CAWgIiIiIiIi0iL8WrsCIiIiIm2Z2+2murq6tashTcDf3x+bzdba1RC5pCkAFREREamH0+nk0KFDGIbR2lWRJmCxWIiNjSUkJKS1qyJyybIY+kQVEREROYvb7Wb37t0EBQXRqVMnLBZLa1dJfgLDMDh+/DhlZWX06tVLPaEirUQ9oCIiIiJ1qK6uxjAMOnXqRGBgYGtXR5pAp06dyMvLo7q6WgGoSCvRTYhEREREzkE9nxcPnUuR1qcAVERERERERFqEAlARERGRNqioqIjXX3+92cvJzMxk8+bNzZL3888/3yz5isiFSwGoiIiISBv0YwJQt9vd6HIUgIpIS1IAKiIiInIehmHgcrmaZarvgQRPPvkkW7duJTU1lUWLFrF3715GjBjBwIEDSUtL49tvvwUgIyODCRMmMGrUKO6++24KCgoYPXo0/fr149FHHyU+Ph6AmpoaHnzwQYYMGUJqaioffvghBw8eZOnSpTzzzDOkpqaya9cunzo88sgj9OnTh5SUFBYtWsTOnTsZOXKkuX3VqlVMmzYNp9PJ2LFjSU5Opn///mRmZvLkk09SWFhIamoqc+bMAeCZZ55hyJAhJCcn89prr5n1v+OOO7jqqquIj49n1apV/OpXv6Jv377cd999TX0qRaSV6S64IiIiIudRVlbWbM+OdDqdBAcHn7X+mWeeYe/evWzcuNGsw4YNG7Db7WzatIknnniC999/H4Dc3Fyys7MJDQ3lgQceYMKECcyaNYvf/e53Zn6vv/46CQkJvPTSS5SUlJCWlkZOTg7Tp08nOjqa6dOn+5RfWFjIe++9x969e7FarRQXFxMeHk5NTQ15eXnEx8fz1ltvMXfuXNauXUtUVBRr1qzB4/HgcrkYPXo0b7zxBjk5OQCsWbOG48eP849//IOqqiquvPJKbrjhBgB27tzJpk2b2LVrF2lpaaxfv56XX36ZwYMHs2vXLnr37t0cL72ItAL1gIqIiIhcACorK7n33nvp168fU6dOZceOHea2sWPHEhoaCsBXX33FxIkTAcy/AOvWrePVV18lNTWVkSNHUlpaypEjR+otLzw8nJCQEO6//37++te/mgH4lClTePvttzl16hQ7d+7kiiuuMHs9H330UTZv3mzWpbZ169bx4YcfkpqayuWXX86xY8fYu3cvAOnp6TgcDvr374/D4WD48OFYLBaSkpI4cODAT3/xRKTNUA+oiIiIyHkEBQXhdDqbLe+GWLx4Mb179+add96hsLCQwYMH15lHfUN6DcPgjTfeYPjw4Q0qz8/Pj82bN7N27VreeecdVq5cSUZGBpMmTWLUqFF06NCB22+/HYDExESys7P56KOPmDVrFjNmzODee+89q/yFCxdy1113+azfs2cPAQEBAFitVnPeu/xjrmsVkbZLAaiIiIjIeVgsljqHyTan0NBQSktLzeWSkhL69OmDxWIhIyOj3v2GDx/OihUreOCBB1ixYoW5Pj09nSVLljBs2DCsVis5OTmkpqaeVY6X0+mkrKyMm266iZSUFMaPHw+c7hnt27cvCxcu5G9/+xsAR44coX379txzzz1YLBa2bNkCnA4gPR4PVquV9PR0XnjhBW699VYcDge7du0iLi6uKV4qEbmAKAAVERERaYM6dOhAcnIyycnJ3H333UyfPp0JEyawZMkSMxisy/z585k4cSJLliwhPT2dsLAwAKZNm8Z3331HSkoKHo+H3r17s3LlSm688UYmTJjAu+++y/Lly83rLUtLS7npppuoqqrCYrGwcOFCs4xJkyZx4MABevToAcDWrVt5+OGHsdlsBAcH8+abbwLw85//nP79+3Pttdfy4osvsm3bNoYMGYJhGERGRvLhhx8218snIm2UxahvnIaIiIjIJayiooJ9+/aRkJCAw+Fo7eo0WEVFBf7+/thsNt5++23Wr19/zh7TH+Oxxx6jZ8+e3H///U2ab3O7UM+pyMVEPaAiIiIiF5G8vDzuvPNO3G437du356233mrS/K+77jqKi4uZP39+k+YrIpcGBaAiIiIiF5E+ffqY12A2h08++aTZ8haRi58ewyIiIiIiIiItQgGoiIiIiIiItAgFoCIiIiIiItIiFICKiIiIiIhIi1AAKiIiItIGFRUV8frrrzd7OZmZmWzevLlZ8n7++eebJV8RuXApABURERFpg35MAOp2uxtdjgJQEWlJCkBFREREzsMwDFwuV7NMhmHUWeaTTz7J1q1bSU1NZdGiRezdu5cRI0YwcOBA0tLS+PbbbwHIyMhgwoQJjBo1irvvvpuCggJGjx5Nv379ePTRR4mPjwegpqaGBx98kCFDhpCamsqHH37IwYMHWbp0Kc888wypqans2rXLpw6PPPIIffr0ISUlhUWLFrFz505Gjhxpbl+1ahXTpk3D6XQyduxYkpOT6d+/P5mZmTz55JMUFhaSmprKnDlzAHjmmWcYMmQIycnJvPbaa2b977jjDq666iri4+NZtWoVv/rVr+jbty/33XdfU59KEWlleg6oiIiIyHmUlZUREhLSLHk7nU6Cg4PPWv/MM8+wd+9eNm7caNZhw4YN2O12Nm3axBNPPMH7778PQG5uLtnZ2YSGhvLAAw8wYcIEZs2axe9+9zszv9dff52EhAReeuklSkpKSEtLIycnh+nTpxMdHc306dN9yi8sLOS9995j7969WK1WiouLCQ8Pp6amhry8POLj43nrrbeYO3cua9euJSoqijVr1uDxeHC5XIwePZo33niDnJwcANasWcPx48f5xz/+QVVVFVdeeSU33HADADt37mTTpk3s2rWLtLQ01q9fz8svv8zgwYPZtWsXvXv3bo6XXkRagXpARURERC4AlZWV3HvvvfTr14+pU6eyY8cOc9vYsWMJDQ0F4KuvvmLixIkA5l+AdevW8eqrr5KamsrIkSMpLS3lyJEj9ZYXHh5OSEgI999/P3/961/NAHzKlCm8/fbbnDp1ip07d3LFFVeYvZ6PPvoomzdvNutS27p16/jwww9JTU3l8ssv59ixY+zduxeA9PR0HA4H/fv3x+FwMHz4cCwWC0lJSRw4cOCnv3gi0maoB1RERETkPIKCgnA6nc2Wd0MsXryY3r17884771BYWMjgwYPrzKO+Ib2GYfDGG28wfPjwBpXn5+fH5s2bWbt2Le+88w4rV64kIyODSZMmMWrUKDp06MDtt98OQGJiItnZ2Xz00UfMmjWLGTNmcO+9955V/sKFC7nrrrt81u/Zs4eAgAAArFarOe9d/jHXtYpI26UAVEREROQ8LBZLncNkm1NoaCilpaXmcklJCX369MFisZCRkVHvfsOHD2fFihU88MADrFixwlyfnp7OkiVLGDZsGFarlZycHFJTU88qx8vpdFJWVsZNN91ESkoK48ePB073jPbt25eFCxfyt7/9DYAjR47Qvn177rnnHiwWC1u2bAFOB5Aejwer1Up6ejovvPACt956Kw6Hg127dhEXF9cUL5WIXEAUgIqIiIi0QR06dCA5OZnk5GTuvvtupk+fzoQJE1iyZIkZDNZl/vz5TJw4kSVLlpCenk5YWBgA06ZN47vvviMlJQWPx0Pv3r1ZuXIlN954IxMmTODdd99l+fLl5vWWpaWl3HTTTVRVVWGxWFi4cKFZxqRJkzhw4AA9evQAYOvWrTz88MPYbDaCg4N58803Afj5z39O//79ufbaa3nxxRfZtm0bQ4YMwTAMIiMj+fDDD5vr5RORNspi1DdOQ0REROQSVlFRwb59+0hISMDhcLR2dRqsoqICf39/bDYbb7/9NuvXrz9nj+mP8dhjj9GzZ0/uv//+Js23uV2o51TkYqIeUBEREZGLSF5eHnfeeSdut5v27dvz1ltvNWn+1113HcXFxcyfP79J8xWRS4MCUBEREZGLSJ8+fcxrMJvDJ5980mx5i8jFT49hERERERERkRahAFRERERERERahAJQERERERERaREKQEVERETaoKKiIl5//fVmLyczM5PNmzc3S97PP/98s+QrIhcuBaAiIiIibdCPCUDdbnejy1EAKiItSQGoiIiISBv05JNPsnXrVlJTU1m0aBF79+5lxIgRDBw4kLS0NL799lsAMjIymDBhAqNGjeLuu++moKCA0aNH069fPx599FHi4+MBqKmp4cEHH2TIkCGkpqby4YcfcvDgQZYuXcozzzxDamoqu3bt8qnDI488Qp8+fUhJSWHRokXs3LmTkSNHmttXrVrFtGnTcDqdjB07luTkZPr3709mZiZPPvkkhYWFpKamMmfOHACeeeYZhgwZQnJyMq+99ppZ/zvuuIOrrrqK+Ph4Vq1axa9+9Sv69u3Lfffd1wKvtIi0JD2GRUREROQ8DMOgrKysWfIOCgrC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j4+noqLinPsuWbKExMRERowYwYQJE8jIyGjwaSgsLCQyMhKAgIAAEhMTzW3Tpk1j2bJlVFZWNjg/EWl5CkBFREREzqesDEJCmmcqK6uzyPfee48OHTqQk5PDmDFjAHA4HGRnZ5Oens7ixYvJzMwkJycHm83GypUr2bFjB2vWrGHjxo1s2bKF7OxsNm/efFbe2dnZZGRk8Nlnn53zsHfs2MHTTz/N9u3bycrKYvfu3QAUFBRw2223sX37djweD59++mmD9j18+DCLFy8mOzub1atX880339Rb9i233GIOwV26dCkA06dPp0ePHtxxxx289dZbZuAL0KlTJ8aOHcsf//jHcx6TiLQuDcEVERERuUDcfvvtAGRlZZGbm2te51heXk5cXBxHjx4lKyuLQYMGAeB0Otm9ezeDBw/2yefKK68kOjr6vOX17duXXr16AZCcnExeXh69evUiIiKCkSNHAjBgwACfobDn2tflcpGenk5oaCgA1113Xb1l1zUEd8GCBUyePJk1a9awePFi1q1b5xNwPvTQQ9xwww1cffXV5z02EWkdCkBFREREzicoCJzO5su7wUlPpzUMg/Hjx7Ns2TKf7S+//DIzZszgiSeeaFA+ADabzRy+C/gMYbXb7ea81Wo1exzrW19bXWmMeoYbN0ZiYiKJiYncddddxMfH+2xLSEggJSWFDz744CeXIyLNQ0NwRURERM7HYoHg4OaZzrjBUEMMGzaMDRs2cOjQIeD0tZGHDh3i6quvZvny5RQVFQFw6NAhCgsLz5lXt27d2L59OzU1Nezfv5/c3NxG16ehhgwZwoYNG3A6nTidTtasWdOo/T/55BMziM3NzaVbt25npZk3bx4vvvhik9RXRJqeekBFRERELjCRkZG88sorjB8/nurqavz9/XnttdcYOHAgDz/8MKNGjcIwDEJCQli+fDkdOnSoN6+4uDiuueYakpKSSE5Opl+/fs1W79jYWGbNmsXAgQOJjIwkKSmJsLCwOtPecsstZi/qsGHDWLp0KRkZGcyePZvAwEACAwPrvIFRamoqSUlJZhAuIm2LxWiKsRAiIiIiF5mKigr27dtHQkICDoejtatz0XC5XAQHB+NyuRgxYgR/+ctf6N69e4uUrXMq0vrUAyoiIiIiLeapp57is88+o6KigmnTprVY8CkibYMCUBERERFpMbo+U+TSppsQ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fn7+OdOUlJRQXl5OYGCgz7Znn32WBQsWNPkxioiIiIjIxc/hcPDxxx+fP2Htu+AqAAVaMACdOXMm27Zt4+9//7vP+l/+8pfmfP/+/YmJieGaa65h79699OjRo1nq8vjjjzN37lxzuaSkhK5duzZLWSIiIiIicolSD+hZWmQI7qxZs/joo4/47LPPiI2NPWfaoUOHArBnzx4AoqOjKSgo8EnjXfZeN1pfmrCwsLN6PwHsdjthYWE+k4iIiIiISJM68y64jfVj9mnjmjUANQyDWbNm8f777/Ppp5+SkJBw3n1ycnIAiImJASAtLY2tW7dy7NgxM826desICwvjsssuM9Ns2LDBJ59169aRlpbWREciIiIiIiJyWllZGb169aJXr14+9685S1P2gF4kwWizDsGdOXMm7777LqtWrSI0NNS8ZjM8PJzAwED27t3Lu+++y/XXX0+HDh3Izc1lzpw5jBw5kuTkZACuvfZaLrvsMu6++26ee+458vPzeeqpp5g5cyZ2ux2A6dOn87vf/Y558+Zx33338emnn/LnP/+5YeOyRUREREREGsEwDHPEpnGuwPCnBqAWS+1CfZcvUM0agC5ZsgSA0aNH+6z/wx/+wD333ENAQADr169n8eLFuFwuunbtym233cZTTz1lprXZbHz00UfMmDGDtLQ0goODmTJlCr/5zW/MNAkJCXz88cfMmTOHl156idjYWF5//XU9gkVERERERJqcw+Ew723jcDjqT/hTA9Dawa16QM/vnP8NALp27crnn39+3nzi4uJYvXr1OdOMHj2aLVu2NKp+IiIiIiIijWWz2bjiiivOn7Ap74J7kQSgLfocUBERERERkYtOfcHhT+0BdTp/2v5tkAJQERERERGRRqipqWHFihWsWLGCmuJi6NULfvGLsxM2NACtqYGjR33XrVkDCxf+sHyR9IC22HNARURERERELgaVlZXccccdADiXLcNv717YuxcGD/ZN2NDHsFxzDXzxBWzaBEOGnF43Z079eV3AFICKiIiIiIg0gtVqZdSoUafn60tkGA3vAf3ii9N/f//7HwLQM+94qx5QERERERGRS09gYCCZmZmnF958s+5EjQlAG+IiCUB1DaiIiIiIiEhTqN1r6Xb/tLvgntkDepEMwVUAKiIiIiIi0hTODDjP7AEtK2v4/o3ZdgFRACoiIiIiItII5eXl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4+Ialrb2+g8/rDut7oIrIiIiIiJy6aioqGDSpEmwdy/LAQfU3wPqVTtwrC+IrB2kJibWnfYC7wFVACoiIiIiItIIbrebVatWnZ73rmxMANqQHlBvfmemvcAD0Au7/1ZERERERKSFBQQEsGzZMpZNmkSAd2Vdd7CtrXbg2JBrQL0BqHpARURERERELl3+/v5MnToVKith+XLvynPv1FQ9oBf4NaAXdu1FRERERERaS+1g8Hw9oA25BrS2gO/7Vi/wHs8zqQdURERERESkETweD99++y24XPTl+169pugB9Xh+mK9vCO4FTgGoiIiIiIhII5SXl9OvXz8AnEAwnL+nsiE9oHUFoOoBFRERERERubR17NgRqquhuPj0Covl3DvUDiQv4R7Qi+toREREREREmllwcDDHjx/n+F/+crr3E84fKDakB9RuPzuNekBFRERERESkUTcWqt1DWl9QmZQEU6dCTEzd+ebmNr6ObYwCUBERERERkR+jdiB5viG4tbfXF6xaLLBsWf1ldOzYuPq1Qc0yBDcvL49f/OIXJCQkEBgYSI8ePZg/fz5VVVU+aSwWy1nTxo0bffJasWIFffr0weFw0L9/f1avXu2z3TAMfv3rXxMTE0NgYCDp6ens3r27OQ5LRERERESEiooKJk+ezOT/+A8qvCsbc63m+YLVH5v2AtAsAejOnTvxeDy8+uqrbN++nRdffJGlS5fyxBNPnJV2/fr1HD161JwGDRpkbvvqq6+48847+cUvfsGWLVu4+eabufnmm9m2bZuZ5rnnnuPll19m6dKlfP311wQHBzNmzBgqKirOKktEREREROSncrvdvPvuu7y7bh1u78rzBaCG0dzVuiBYDKNlXolFixaxZMkSvvvuO+B0D2hCQgJbtmwhNTW1zn0mTpyIy+Xio48+MtcNGzaM1NRUli5dimEYdO7cmYceeoiHH34YgOLiYqKiosjIyGDSpEkNqltJSQnh4eEUFxcTFhb20w5UREREREQuatXV1bzyyiuwfz8zFy/GH+D48XMPkT16FDp3Pj1/8iS0a9ewwk6dgvbtT88fOeJ7fWgb0tCYqsXugltcXEx77wtXy0033URkZCQjRozgr3/9q8+2rKws0tPTfdaNGTOGrKwsAPbt20d+fr5PmvDwcIYOHWqmqUtlZSUlJSU+k4iIiIiISEP4+/sze/ZsZt95J/7elefrAQ0O/mG+9t1uzyc8HHr0gLg4iIxsbFXbnBa5CdGePXv47//+b55//nlzXUhICC+88AJXXHEFVquVv/zlL9x888188MEH3HTTTQDk5+cTFRXlk1dUVBT5+fnmdu+6+tLU5dlnn2XBggVNcmwiIiIiInKJqh10nu9azbAw+POfT+8TFNS4MnbuPD1/ETySpVE9oI899lidNw6qPe30vjjfO3z4MGPHjuX2229n6tSp5vqOHTsyd+5chg4dypAhQ/jtb3/Lz3/+cxYtWtQ0R3YOjz/+OMXFxeZ08ODBZi9TREREREQuDh6Ph7y8PPKOHsXjXdmQmxDdfjvcdlvjC/TzOz1dBBp1FA899BD33HPPOdN0797dnD9y5AhXXXUVw4cPZ9mZtxOuw9ChQ1m3bp25HB0dTUFBgU+agoICoqOjze3edTG1xkIXFBTUe10pgN1ux96Ybm8REREREZHvlZeXk5CQAIATCIbG3QX3EtaoALRTp0506tSpQWkPHz7MVVddxaBBg/jDH/6AtQEnJCcnxyeQTEtLY8OGDcyePdtct27dOtLS0gBISEggOjqaDRs2mAFnSUkJX3/9NTNmzGj4gYmIiIiIiDRCUFAQeDzgffrGRfa4lObSLP24hw8fZvTo0cTFxfH8889z/Phxc5u31/LNN98kICCAAQMGALBy5Up+//vf8/rrr5tpH3zwQUaNGsULL7zAuHHjWL58OZs3bzZ7Uy0WC7Nnz+Y//uM/6NWrFwkJCfz7v/87nTt35uabb26OQxMRERERkUtccHAwLpcLcnLg+3hGPaAN0ywB6Lp169izZw979uwhNjbWZ1vtp74sXLiQ/fv34+fnR58+ffjTn/7EhAkTzO3Dhw/n3Xff5amnnuKJJ56gV69efPDBB/Tr189MM2/ePFwuF7/85S8pKipixIgRrFmzBofD0RyHJiIiIiIiclrtXk8FoA3SYs8Bbcv0HFAREREREWm03FxISTk9X1HRuMerXGQaGlNdHLdSEhERERERaSGVlZXMmjULTp7kd4Ad1APaQApARUREREREGqGmpsa8d81ivg9AdROiBlEAKiIiIiIi0gj+/v78x3/8Bxw7hv/LL59eqR7QBtE1oOgaUBERERER+RFKS8EbP3g8l3QvqK4BFRERERERaU6hoZCXBwEBl3Tw2RgKQEVERERERBrBMAxOnDgBQMdu3bAo+GwwBaAiIiIiIiKNUFZWRmRkJABOp5Pg4OBWrtGFQ1fKioiIiIiISItQD6iIiIiIiEgjBAcHo3u5/jjqARUREREREZEWoQBUREREREREWoQCUBEREREREWkRugYUzPHbJSUlrVwTERERERGRC483ljrftbEKQIHS0lIAunbt2so1ERERERERuXCVlpYSHh5e73aLods34fF4OHLkCKGhoW3uIbIlJSV07dqVgwcPEhYW1trVkYuA2pQ0NbUpaWpqU9LU1KakOahd+TIMg9LSUjp37ozVWv+VnuoBBaxWK7Gxsa1djXMKCwtTw5YmpTYlTU1tSpqa2pQ0NbUpaQ5qVz84V8+nl25CJCIiIiIiIi1CAaiIiIiIiIi0CAWgbZzdbmf+/PnY7fbWropcJNSmpKmpTUlTU5uSpqY2Jc1B7erH0U2IREREREREpEWoB1RERERERERahAJQERERERERaREKQEVERERERKRFKAAVERERERGRFqEAVERERERERFqEAtA27pVXXiE+Ph6Hw8HQoUPZtGlTa1dJ2qCnn34ai8XiM/Xp08fcXlFRwcyZM+nQoQMhISHcdtttFBQU+ORx4MABxo0bR1BQEJGRkTzyyCPU1NS09KFIK/niiy+48cYb6dy5MxaLhQ8++MBnu2EY/PrXvyYmJobAwEDS09PZvXu3T5qTJ08yefJkwsLCiIiI4Be/+AVOp9MnTW5uLldeeSUOh4OuXbvy3HPPNfehSSs5X5u65557zvrcGjt2rE8atSmp7dlnn2XIkCGEhoYSGRnJzTffzK5du3zSNNX3XWZmJgMHDsRut9OzZ08yMjKa+/CkFTSkTY0ePfqsz6rp06f7pFGbahwFoG3Yn/70J+bOncv8+fP55ptvSElJYcyYMRw7dqy1qyZtUFJSEkePHjWnv//97+a2OXPm8OGHH7JixQo+//xzjhw5wq233mpud7vdjBs3jqqqKr766ivefPNNMjIy+PWvf90ahyKtwOVykZKSwiuvvFLn9ueee46XX36ZpUuX8vXXXxMcHMyYMWOoqKgw00yePJnt27ezbt06PvroI7744gt++ctfmttLSkq49tpriYuLIzs7m0WLFvH000+zbNmyZj8+aXnna1MAY8eO9fnc+t///V+f7WpTUtvnn3/OzJkz2bhxI+vWraO6upprr70Wl8tlpmmK77t9+/Yxbtw4rrrqKnJycpg9ezb3338/a9eubdHjlebXkDYFMHXqVJ/Pqtr/6FKb+hEMabMuv/xyY+bMmeay2+02OnfubDz77LOtWCtpi+bPn2+kpKTUua2oqMjw9/c3VqxYYa779ttvDcDIysoyDMMwVq9ebVitViM/P99Ms2TJEiMsLMyorKxs1rpL2wMY77//vrns8XiM6OhoY9GiRea6oqIiw263G//7v/9rGIZh7NixwwCMf/zjH2aaTz75xLBYLMbhw4cNwzCM//mf/zHatWvn06YeffRRo3fv3s18RNLazmxThmEYU6ZMMcaPH1/vPmpTcj7Hjh0zAOPzzz83DKPpvu/mzZtnJCUl+ZQ1ceJEY8yYMc19SNLKzmxThmEYo0aNMh588MF691Gbajz1gLZRVVVVZGdnk56ebq6zWq2kp6eTlZXVijWTtmr37t107tyZ7t27M3nyZA4cOABAdnY21dXVPm2pT58+dOvWzWxLWVlZ9O/fn6ioKDPNmDFjKCkpYfv27S17INLm7Nu3j/z8fJ82FB4eztChQ33aUEREBIMHDzbTpKenY7Va+frrr800I0eOJCAgwEwzZswYdu3axalTp1roaKQtyczMJDIykt69ezNjxgwKCwvNbWpTcj7FxcUAtG/fHmi677usrCyfPLxp9Pvr4ndmm/J655136NixI/369ePxxx+nrKzM3KY21Xh+rV0BqduJEydwu90+jRkgKiqKnTt3tlKtpK0aOnQoGRkZ9O7dm6NHj7JgwQKuvPJKtm3bRn5+PgEBAURERPjsExUVRX5+PgD5+fl1tjXvNrm0edtAXW2kdhuKjIz02e7n50f79u190iQkJJyVh3dbu3btmqX+0jaNHTuWW2+9lYSEBPbu3csTTzzBddddR1ZWFjabTW1Kzsnj8TB79myuuOIK+vXrB9Bk33f1pSkpKaG8vJzAwMDmOCRpZXW1KYC77rqLuLg4OnfuTG5uLo8++ii7du1i5cqVgNrUj6EAVOQicN1115nzycnJDB06lLi4OP785z9fch9qInJhmDRpkjnfv39/kpOT6dGjB5mZmVxzzTWtWDO5EMycOZNt27b53O9A5Keor03Vvu68f//+xMTEcM0117B371569OjR0tW8KGgIbhvVsWNHbDbbWXduKygoIDo6upVqJReKiIgIEhMT2bNnD9HR0VRVVVFUVOSTpnZbio6OrrOtebfJpc3bBs71eRQdHX3WDdJqamo4efKk2pk0SPfu3enYsSN79uwB1KakfrNmzeKjjz7is88+IzY21lzfVN939aUJCwvTP3UvUvW1qboMHToUwOezSm2qcRSAtlEBAQEMGjSIDRs2mOs8Hg8bNmwgLS2tFWsmFwKn08nevXuJiYlh0KBB+Pv7+7SlXbt2ceDAAbMtpaWlsXXrVp8fe+vWrSMsLIzLLrusxesvbUtCQgLR0dE+baikpISvv/7apw0VFRWRnZ1tpvn000/xeDzml3VaWhpffPEF1dXVZpp169bRu3dvDZUUDh06RGFhITExMYDalJzNMAxmzZrF+++/z6effnrW8Oum+r5LS0vzycObRr+/Lj7na1N1ycnJAfD5rFKbaqTWvguS1G/58uWG3W43MjIyjB07dhi//OUvjYiICJ+7bIkYhmE89NBDRmZmprFv3z7jyy+/NNLT042OHTsax44dMwzDMKZPn25069bN+PTTT43NmzcbaWlpRlpamrl/TU2N0a9fP+Paa681cnJyjDVr1hidOnUyHn/88dY6JGlhpaWlxpYtW4wtW7YYgPFf//VfxpYtW4z9+/cbhmEYv/3tb42IiAhj1apVRm5urjF+/HgjISHBKC8vN/MYO3asMWDAAOPrr782/v73vxu9evUy7rzzTnN7UVGRERUVZdx9993Gtm3bjOXLlxtBQUHGq6++2uLHK83vXG2qtLTUePjhh42srCxj3759xvr1642BAwcavXr1MioqKsw81KakthkzZhjh4eFGZmamcfToUXMqKysz0zTF9913331nBAUFGY888ojx7bffGq+88ophs9mMNWvWtOjxSvM7X5vas2eP8Zvf/MbYvHmzsW/fPmPVqlVG9+7djZEjR5p5qE01ngLQNu6///u/jW7duhkBAQHG5ZdfbmzcuLG1qyRt0MSJE42YmBgjICDA6NKlizFx4kRjz5495vby8nLjgQceMNq1a2cEBQUZt9xyi3H06FGfPPLy8ozrrrvOCAwMNDp27Gg89NBDRnV1dUsfirSSzz77zADOmqZMmWIYxulHsfz7v/+7ERUVZdjtduOaa64xdu3a5ZNHYWGhceeddxohISFGWFiYce+99xqlpaU+af75z38aI0aMMOx2u9GlSxfjt7/9bUsdorSwc7WpsrIy49prrzU6depk+Pv7G3FxccbUqVPP+ger2pTUVld7Aow//OEPZpqm+r777LPPjNTUVCMgIMDo3r27Txly8Thfmzpw4IAxcuRIo3379obdbjd69uxpPPLII0ZxcbFPPmpTjWMxDMNouf5WERERERERuVTpGlARERERERFpEQpARUREREREpEUoABUREREREZEWoQBUREREREREWoQCUBEREREREWkRCkBFRERERESkRSgAFRERERERkRahAFRERERERERahAJQERERERERaREKQEVERERERKRFKAAVERERERGRFvH/A0SLurnkSo7oAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1100x150 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 信号和噪声\n",
    "import numpy as np\n",
    "from pyESN import ESN\n",
    "from matplotlib import pyplot as plt\n",
    "import scipy.io as sio\n",
    "%matplotlib inline\n",
    "\n",
    "# 导入数据\n",
    "# data = np.load('./data/hundun.npy') #  http://minds.jacobs-university.de/mantas/code\n",
    "metadata=sio.loadmat('./data/message_and_noise/time_series.mat')\n",
    "data = metadata['y2']\n",
    "print(data)\n",
    "\n",
    "esn = ESN(n_inputs = 3,\n",
    "          n_outputs = 3,\n",
    "          n_reservoir = 3500,\n",
    "          spectral_radius = 1.2,\n",
    "          sparsity=0.2,\n",
    "          noise = 0.005,\n",
    "          random_state=23)\n",
    "\n",
    "trainlen = 2500\n",
    "future = 100\n",
    "\n",
    "pred_training = esn.fit(np.ones((trainlen,3)),data[:trainlen])\n",
    "prediction = esn.predict(np.ones((future,3)))\n",
    "print(\"test error: \\n\"+str(np.sqrt(np.mean((prediction.flatten() - data[trainlen:trainlen+future].flatten())**2))))\n",
    "\n",
    "plt.figure(figsize=(11,1.5))\n",
    "\n",
    "# 只展示训练和预测部分\n",
    "plt.plot(range(0,trainlen+future),data[0:trainlen+future],'k',label=\"target system\")\n",
    "plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "\n",
    "# 只展示预测部分\n",
    "# plt.plot(range(trainlen,trainlen+future),data[trainlen:trainlen+future],'k',label=\"target system\")\n",
    "# plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "\n",
    "lo,hi = plt.ylim()\n",
    "plt.plot([trainlen,trainlen],[lo+np.spacing(1),hi-np.spacing(1)],'k:')\n",
    "plt.legend(loc=(0.61,1.1),fontsize='x-small')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[  1.           4.35084781  -2.99888083]\n",
      " [  1.026        4.04558994 -10.92806076]\n",
      " [  1.07515667  -1.9797046    5.27461247]\n",
      " ...\n",
      " [  1.93127998   0.83316225  27.95419406]\n",
      " [  2.27300776  -2.96355752  27.4989111 ]\n",
      " [  1.67894551  -5.03562222  35.31514497]]\n",
      "W11 (3500, 3500)\n",
      "W_in (3500, 3)\n",
      "W_feedb (3500, 3)\n",
      "states (2500, 3500)\n",
      "transient 0\n",
      "inputs_scaled (2500, 3)\n",
      "extended_states (2500, 3503)\n",
      "teachers_scaled (2500, 3)\n",
      "extended_states [[ 2.29272641e-03 -2.22948442e-04  3.66712858e-04 ... -2.24413094e-02\n",
      "   6.20468137e-03 -1.00727384e-02]\n",
      " [ 1.21315819e-02 -2.11413897e-03 -2.63660189e-03 ...  4.55047236e-03\n",
      "   2.38169314e-03 -9.85678766e-03]\n",
      " [-1.33255422e-02 -7.70124452e-04 -2.72254984e-03 ... -5.75511525e-03\n",
      "   1.82449723e-02  1.13235782e-02]\n",
      " ...\n",
      " [ 3.33333333e-01 -2.79084926e-15 -1.22014249e-16 ...  1.37008511e-15\n",
      "   1.26486265e-15  8.37356443e-16]\n",
      " [ 3.33333333e-01  1.41769154e-15  2.55787009e-16 ...  3.81424865e-16\n",
      "  -1.12652396e-15 -2.13590051e-16]\n",
      " [ 3.33333333e-01  1.35574823e-15 -1.78808655e-17 ... -1.83399574e-15\n",
      "  -2.10258353e-16 -6.00276685e-16]]\n",
      "extended_states (3503, 2500)\n",
      "W out [[  1.61053168   0.54628844   0.12554041 ...   0.33333333   0.33333333\n",
      "    0.33333333]\n",
      " [ -3.6042693   -7.27533011  -3.44939615 ...   1.4502826    1.4502826\n",
      "    1.4502826 ]\n",
      " [-16.26614722  54.74307375  25.75714387 ...  -0.99962694  -0.99962694\n",
      "   -0.99962694]]\n",
      "W_out (3, 3503)\n",
      "pred_train (2500, 3)\n",
      "test error: \n",
      "390.82465229406296\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x297ddb1c9d0>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1100x150 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 只有信号，没有噪声\n",
    "import numpy as np\n",
    "from pyESN import ESN\n",
    "from matplotlib import pyplot as plt\n",
    "import scipy.io as sio\n",
    "%matplotlib inline\n",
    "\n",
    "# 导入数据\n",
    "# data = np.load('./data/hundun.npy') #  http://minds.jacobs-university.de/mantas/code\n",
    "metadata=sio.loadmat('./data/message/time_series.mat')\n",
    "data = metadata['y2']\n",
    "print(data)\n",
    "\n",
    "esn = ESN(n_inputs = 3,\n",
    "          n_outputs = 3,\n",
    "          n_reservoir = 3500,\n",
    "          spectral_radius = 1.2,\n",
    "          sparsity=0.2,\n",
    "          noise = 0.005,\n",
    "          random_state=23)\n",
    "\n",
    "trainlen = 8000\n",
    "future = 100\n",
    "\n",
    "pred_training = esn.fit(np.ones((trainlen,3)),data[:trainlen])\n",
    "prediction = esn.predict(np.ones((future,3)))\n",
    "print(\"test error: \\n\"+str(np.sqrt(np.mean((prediction.flatten() - data[trainlen:trainlen+future].flatten())**2))))\n",
    "\n",
    "plt.figure(figsize=(11,1.5))\n",
    "\n",
    "# 只展示训练和预测部分\n",
    "plt.plot(range(0,trainlen+future),data[0:trainlen+future],'k',label=\"target system\")\n",
    "# plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "\n",
    "# 只展示预测部分\n",
    "# plt.plot(range(trainlen,trainlen+future),data[trainlen:trainlen+future],'k',label=\"target system\")\n",
    "# plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "\n",
    "lo,hi = plt.ylim()\n",
    "plt.plot([trainlen,trainlen],[lo+np.spacing(1),hi-np.spacing(1)],'k:')\n",
    "plt.legend(loc=(0.61,1.1),fontsize='x-small')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.          1.26        0.98333333]\n",
      " [ 1.026       1.51756667  0.96971111]\n",
      " [ 1.07515667  1.77972176  0.95942238]\n",
      " ...\n",
      " [ 2.93127998 -3.65144226 29.79740063]\n",
      " [ 2.27300776 -3.66761468 28.89576928]\n",
      " [ 1.67894551 -3.65129944 28.04185027]]\n"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[4], line 10\u001b[0m\n\u001b[0;32m      7\u001b[0m \u001b[38;5;28mprint\u001b[39m(data_all)\n\u001b[0;32m      8\u001b[0m data \u001b[38;5;241m=\u001b[39m data_all[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m---> 10\u001b[0m esn \u001b[38;5;241m=\u001b[39m \u001b[43mESN\u001b[49m\u001b[43m(\u001b[49m\u001b[43mn_inputs\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m     11\u001b[0m \u001b[43m          \u001b[49m\u001b[43mn_outputs\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m     12\u001b[0m \u001b[43m          \u001b[49m\u001b[43mn_reservoir\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m3500\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m     13\u001b[0m \u001b[43m          \u001b[49m\u001b[43mspectral_radius\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1.2\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m     14\u001b[0m \u001b[43m          \u001b[49m\u001b[43msparsity\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0.2\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m     15\u001b[0m \u001b[43m          \u001b[49m\u001b[43mnoise\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0.005\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m     16\u001b[0m \u001b[43m          \u001b[49m\u001b[43mrandom_state\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m23\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m     18\u001b[0m trainlen \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m8000\u001b[39m\n\u001b[0;32m     19\u001b[0m future \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2000\u001b[39m\n",
      "File \u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\pyESN.py:91\u001b[0m, in \u001b[0;36mESN.__init__\u001b[1;34m(self, n_inputs, n_outputs, n_reservoir, spectral_radius, sparsity, noise, input_shift, input_scaling, teacher_forcing, feedback_scaling, teacher_scaling, teacher_shift, out_activation, inverse_out_activation, random_state, silent)\u001b[0m\n\u001b[0;32m     89\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mteacher_forcing \u001b[38;5;241m=\u001b[39m teacher_forcing\n\u001b[0;32m     90\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msilent \u001b[38;5;241m=\u001b[39m silent\n\u001b[1;32m---> 91\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minitweights\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\pyESN.py:100\u001b[0m, in \u001b[0;36mESN.initweights\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m     98\u001b[0m W[\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrandom_state_\u001b[38;5;241m.\u001b[39mrand(\u001b[38;5;241m*\u001b[39mW\u001b[38;5;241m.\u001b[39mshape) \u001b[38;5;241m<\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msparsity] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[0;32m     99\u001b[0m \u001b[38;5;66;03m# compute the spectral radius of these weights:\u001b[39;00m\n\u001b[1;32m--> 100\u001b[0m radius \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mmax(np\u001b[38;5;241m.\u001b[39mabs(\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlinalg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meigvals\u001b[49m\u001b[43m(\u001b[49m\u001b[43mW\u001b[49m\u001b[43m)\u001b[49m))\n\u001b[0;32m    101\u001b[0m \u001b[38;5;66;03m# rescale them to reach the requested spectral radius:\u001b[39;00m\n\u001b[0;32m    102\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mW \u001b[38;5;241m=\u001b[39m W \u001b[38;5;241m*\u001b[39m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspectral_radius \u001b[38;5;241m/\u001b[39m radius)\n",
      "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\numpy\\linalg\\linalg.py:1074\u001b[0m, in \u001b[0;36meigvals\u001b[1;34m(a)\u001b[0m\n\u001b[0;32m   1071\u001b[0m extobj \u001b[38;5;241m=\u001b[39m get_linalg_error_extobj(\n\u001b[0;32m   1072\u001b[0m     _raise_linalgerror_eigenvalues_nonconvergence)\n\u001b[0;32m   1073\u001b[0m signature \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mD->D\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m isComplexType(t) \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124md->D\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m-> 1074\u001b[0m w \u001b[38;5;241m=\u001b[39m \u001b[43m_umath_linalg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meigvals\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msignature\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msignature\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mextobj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mextobj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m   1076\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m isComplexType(t):\n\u001b[0;32m   1077\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mall\u001b[39m(w\u001b[38;5;241m.\u001b[39mimag \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m):\n",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from pyESN import ESN\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "data_all = np.load('./data/hundun.npy') #  http://minds.jacobs-university.de/mantas/code\n",
    "print(data_all)\n",
    "data = data_all[0]\n",
    "\n",
    "esn = ESN(n_inputs = 1,\n",
    "          n_outputs = 1,\n",
    "          n_reservoir = 3500,\n",
    "          spectral_radius = 1.2,\n",
    "          sparsity=0.2,\n",
    "          noise = 0.005,\n",
    "          random_state=23)\n",
    "\n",
    "trainlen = 8000\n",
    "future = 2000\n",
    "print(np.ones(trainlen).shape)\n",
    "print(data[:trainlen].shape)\n",
    "pred_training = esn.fit(np.ones(trainlen),data[:trainlen])\n",
    "\n",
    "prediction = esn.predict(np.ones(future))\n",
    "print('1',prediction.flatten())\n",
    "print('2',data[trainlen:trainlen+future])\n",
    "print(\"test error: \\n\"+str(np.sqrt(np.mean((prediction.flatten() - data[trainlen:trainlen+future])**2))))\n",
    "\n",
    "plt.figure(figsize=(11,1.5))\n",
    "plt.plot(range(0,trainlen+future),data[0:trainlen+future],'k',label=\"target system\")\n",
    "plt.plot(range(trainlen,trainlen+future),prediction,'r', label=\"free running ESN\")\n",
    "lo,hi = plt.ylim()\n",
    "plt.plot([trainlen,trainlen],[lo+np.spacing(1),hi-np.spacing(1)],'k:')\n",
    "plt.legend(loc=(0.61,1.1),fontsize='x-small')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data [1.         1.026      1.07515667 ... 2.93127998 2.27300776 1.67894551]\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.0 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.0 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.0 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.0 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.0 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.0 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.0 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.0 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.0 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.0 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.0 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.0 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.0 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.0 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.0 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.1 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.1 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.1 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.1 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.1 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.1 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.1 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.1 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.1 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.1 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.1 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.1 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.1 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.1 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.1 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.2 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.2 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.2 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.2 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.2 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.2 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.2 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.2 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.2 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.2 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.2 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.2 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.2 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.2 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.2 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.30000000000000004 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.30000000000000004 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.30000000000000004 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.30000000000000004 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.30000000000000004 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.30000000000000004 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.30000000000000004 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.30000000000000004 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.30000000000000004 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.30000000000000004 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.30000000000000004 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.30000000000000004 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.30000000000000004 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.30000000000000004 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.30000000000000004 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.4 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.4 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.4 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.4 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.4 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.4 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.4 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.4 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.4 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.4 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.4 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.4 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.4 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.4 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.4 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.5 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.5 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.5 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.5 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.5 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.5 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.5 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.5 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.5 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.5 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.5 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.5 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.5 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.5 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.5 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.6000000000000001 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.6000000000000001 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.6000000000000001 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.6000000000000001 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.6000000000000001 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.6000000000000001 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.6000000000000001 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.6000000000000001 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.6000000000000001 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.6000000000000001 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.6000000000000001 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.6000000000000001 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.6000000000000001 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.6000000000000001 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.6000000000000001 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.7000000000000001 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.7000000000000001 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.7000000000000001 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.7000000000000001 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.7000000000000001 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.7000000000000001 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.7000000000000001 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.7000000000000001 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.7000000000000001 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.7000000000000001 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.7000000000000001 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.7000000000000001 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.7000000000000001 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.7000000000000001 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.7000000000000001 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.8 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.8 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.8 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.8 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.8 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.8 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.8 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.8 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.8 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.8 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.8 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.8 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.8 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.8 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.8 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "12.892637480642344\n",
      "1000 0.0 0.9 0.0 12.892637480642344\n",
      "test error: \n",
      "12.10502451931061\n",
      "1000 0.0 0.9 0.1 12.10502451931061\n",
      "test error: \n",
      "13.667081045002133\n",
      "1000 0.0 0.9 0.2 13.667081045002133\n",
      "test error: \n",
      "15.94727169130912\n",
      "1000 0.0 0.9 0.30000000000000004 15.94727169130912\n",
      "test error: \n",
      "15.728164088402112\n",
      "1000 0.0 0.9 0.4 15.728164088402112\n",
      "test error: \n",
      "15.528856519539852\n",
      "1000 0.0 0.9 0.5 15.528856519539852\n",
      "test error: \n",
      "15.361174754191369\n",
      "1000 0.0 0.9 0.6000000000000001 15.361174754191369\n",
      "test error: \n",
      "15.293669268398938\n",
      "1000 0.0 0.9 0.7000000000000001 15.293669268398938\n",
      "test error: \n",
      "15.381733925956441\n",
      "1000 0.0 0.9 0.8 15.381733925956441\n",
      "test error: \n",
      "15.294945473895533\n",
      "1000 0.0 0.9 0.9 15.294945473895533\n",
      "test error: \n",
      "15.192281698537698\n",
      "1000 0.0 0.9 1.0 15.192281698537698\n",
      "test error: \n",
      "12.90255547529085\n",
      "1000 0.0 0.9 1.1 12.90255547529085\n",
      "test error: \n",
      "12.772873251221109\n",
      "1000 0.0 0.9 1.2000000000000002 12.772873251221109\n",
      "test error: \n",
      "15.269099830317355\n",
      "1000 0.0 0.9 1.3 15.269099830317355\n",
      "test error: \n",
      "15.173531763579732\n",
      "1000 0.0 0.9 1.4000000000000001 15.173531763579732\n",
      "test error: \n",
      "925.8227165566161\n",
      "1000 0.1 0.0 0.0 925.8227165566161\n",
      "test error: \n",
      "11.490714776479113\n",
      "1000 0.1 0.0 0.1 11.490714776479113\n",
      "test error: \n",
      "16.118933547106906\n",
      "1000 0.1 0.0 0.2 16.118933547106906\n",
      "test error: \n",
      "15.979670163258003\n",
      "1000 0.1 0.0 0.30000000000000004 15.979670163258003\n",
      "test error: \n",
      "15.805350872232932\n",
      "1000 0.1 0.0 0.4 15.805350872232932\n",
      "test error: \n",
      "15.64216244186979\n",
      "1000 0.1 0.0 0.5 15.64216244186979\n",
      "test error: \n",
      "15.491841156726451\n",
      "1000 0.1 0.0 0.6000000000000001 15.491841156726451\n",
      "test error: \n",
      "15.515691514232728\n",
      "1000 0.1 0.0 0.7000000000000001 15.515691514232728\n",
      "test error: \n",
      "15.417964197936996\n",
      "1000 0.1 0.0 0.8 15.417964197936996\n",
      "test error: \n",
      "15.313301552615064\n",
      "1000 0.1 0.0 0.9 15.313301552615064\n",
      "test error: \n",
      "15.213545307065175\n",
      "1000 0.1 0.0 1.0 15.213545307065175\n",
      "test error: \n",
      "15.114625622792973\n",
      "1000 0.1 0.0 1.1 15.114625622792973\n",
      "test error: \n",
      "15.012596738735178\n",
      "1000 0.1 0.0 1.2000000000000002 15.012596738735178\n",
      "test error: \n",
      "12.776594471290583\n",
      "1000 0.1 0.0 1.3 12.776594471290583\n",
      "test error: \n",
      "15.17030509902062\n",
      "1000 0.1 0.0 1.4000000000000001 15.17030509902062\n",
      "test error: \n",
      "2448.352360156059\n",
      "1000 0.1 0.1 0.0 2448.352360156059\n",
      "test error: \n",
      "11.663036086383867\n",
      "1000 0.1 0.1 0.1 11.663036086383867\n",
      "test error: \n",
      "16.303823320418786\n",
      "1000 0.1 0.1 0.2 16.303823320418786\n",
      "test error: \n",
      "16.04455955171342\n",
      "1000 0.1 0.1 0.30000000000000004 16.04455955171342\n",
      "test error: \n",
      "15.783254778437355\n",
      "1000 0.1 0.1 0.4 15.783254778437355\n",
      "test error: \n",
      "15.651978087809402\n",
      "1000 0.1 0.1 0.5 15.651978087809402\n",
      "test error: \n",
      "15.504414212702045\n",
      "1000 0.1 0.1 0.6000000000000001 15.504414212702045\n",
      "test error: \n",
      "15.498654213205178\n",
      "1000 0.1 0.1 0.7000000000000001 15.498654213205178\n",
      "test error: \n",
      "15.418042807315867\n",
      "1000 0.1 0.1 0.8 15.418042807315867\n",
      "test error: \n",
      "15.322532421541364\n",
      "1000 0.1 0.1 0.9 15.322532421541364\n",
      "test error: \n",
      "15.22811326517203\n",
      "1000 0.1 0.1 1.0 15.22811326517203\n",
      "test error: \n",
      "15.132577817232077\n",
      "1000 0.1 0.1 1.1 15.132577817232077\n",
      "test error: \n",
      "14.706416930140545\n",
      "1000 0.1 0.1 1.2000000000000002 14.706416930140545\n",
      "test error: \n",
      "14.793625061134486\n",
      "1000 0.1 0.1 1.3 14.793625061134486\n",
      "test error: \n",
      "12.7217036577578\n",
      "1000 0.1 0.1 1.4000000000000001 12.7217036577578\n",
      "test error: \n",
      "11293.303698307685\n",
      "1000 0.1 0.2 0.0 11293.303698307685\n",
      "test error: \n",
      "11.582321732947252\n",
      "1000 0.1 0.2 0.1 11.582321732947252\n",
      "test error: \n",
      "15.952174574556992\n",
      "1000 0.1 0.2 0.2 15.952174574556992\n",
      "test error: \n",
      "16.04562623133856\n",
      "1000 0.1 0.2 0.30000000000000004 16.04562623133856\n",
      "test error: \n",
      "15.775354953332727\n",
      "1000 0.1 0.2 0.4 15.775354953332727\n",
      "test error: \n",
      "15.657381396092289\n",
      "1000 0.1 0.2 0.5 15.657381396092289\n",
      "test error: \n",
      "15.508373687529682\n",
      "1000 0.1 0.2 0.6000000000000001 15.508373687529682\n",
      "test error: \n",
      "15.53570876573118\n",
      "1000 0.1 0.2 0.7000000000000001 15.53570876573118\n",
      "test error: \n",
      "15.435088503525\n",
      "1000 0.1 0.2 0.8 15.435088503525\n",
      "test error: \n",
      "15.33356790034185\n",
      "1000 0.1 0.2 0.9 15.33356790034185\n",
      "test error: \n",
      "15.235553950141961\n",
      "1000 0.1 0.2 1.0 15.235553950141961\n",
      "test error: \n",
      "15.1385772938081\n",
      "1000 0.1 0.2 1.1 15.1385772938081\n",
      "test error: \n",
      "14.880139413702523\n",
      "1000 0.1 0.2 1.2000000000000002 14.880139413702523\n",
      "test error: \n",
      "14.8152979721295\n",
      "1000 0.1 0.2 1.3 14.8152979721295\n",
      "test error: \n",
      "12.70771193002762\n",
      "1000 0.1 0.2 1.4000000000000001 12.70771193002762\n",
      "test error: \n",
      "5931.9294313319815\n",
      "1000 0.1 0.30000000000000004 0.0 5931.9294313319815\n",
      "test error: \n",
      "11.547345988302745\n",
      "1000 0.1 0.30000000000000004 0.1 11.547345988302745\n",
      "test error: \n",
      "11.040819388867776\n",
      "1000 0.1 0.30000000000000004 0.2 11.040819388867776\n",
      "test error: \n",
      "16.01171677462968\n",
      "1000 0.1 0.30000000000000004 0.30000000000000004 16.01171677462968\n",
      "test error: \n",
      "15.755840089593129\n",
      "1000 0.1 0.30000000000000004 0.4 15.755840089593129\n",
      "test error: \n",
      "15.63788873985421\n",
      "1000 0.1 0.30000000000000004 0.5 15.63788873985421\n",
      "test error: \n",
      "15.498325316553284\n",
      "1000 0.1 0.30000000000000004 0.6000000000000001 15.498325316553284\n",
      "test error: \n",
      "15.505872896699568\n",
      "1000 0.1 0.30000000000000004 0.7000000000000001 15.505872896699568\n",
      "test error: \n",
      "15.418942121472\n",
      "1000 0.1 0.30000000000000004 0.8 15.418942121472\n",
      "test error: \n",
      "15.319896663740447\n",
      "1000 0.1 0.30000000000000004 0.9 15.319896663740447\n",
      "test error: \n",
      "15.225375041576665\n",
      "1000 0.1 0.30000000000000004 1.0 15.225375041576665\n",
      "test error: \n",
      "15.132227681722458\n",
      "1000 0.1 0.30000000000000004 1.1 15.132227681722458\n",
      "test error: \n",
      "15.026307577632398\n",
      "1000 0.1 0.30000000000000004 1.2000000000000002 15.026307577632398\n",
      "test error: \n",
      "14.787373377965327\n",
      "1000 0.1 0.30000000000000004 1.3 14.787373377965327\n",
      "test error: \n",
      "12.69072540230633\n",
      "1000 0.1 0.30000000000000004 1.4000000000000001 12.69072540230633\n",
      "test error: \n",
      "7382.445324487741\n",
      "1000 0.1 0.4 0.0 7382.445324487741\n",
      "test error: \n",
      "11.678403473369166\n",
      "1000 0.1 0.4 0.1 11.678403473369166\n",
      "test error: \n",
      "16.132421391967167\n",
      "1000 0.1 0.4 0.2 16.132421391967167\n",
      "test error: \n",
      "15.963583496622482\n",
      "1000 0.1 0.4 0.30000000000000004 15.963583496622482\n",
      "test error: \n",
      "15.759130746085425\n",
      "1000 0.1 0.4 0.4 15.759130746085425\n",
      "test error: \n",
      "15.602872216064135\n",
      "1000 0.1 0.4 0.5 15.602872216064135\n",
      "test error: \n",
      "15.470734392029973\n",
      "1000 0.1 0.4 0.6000000000000001 15.470734392029973\n",
      "test error: \n",
      "15.519500653648398\n",
      "1000 0.1 0.4 0.7000000000000001 15.519500653648398\n",
      "test error: \n",
      "15.432812939031885\n",
      "1000 0.1 0.4 0.8 15.432812939031885\n",
      "test error: \n",
      "15.335733286735477\n",
      "1000 0.1 0.4 0.9 15.335733286735477\n",
      "test error: \n",
      "15.242942408812986\n",
      "1000 0.1 0.4 1.0 15.242942408812986\n",
      "test error: \n",
      "15.149876960233016\n",
      "1000 0.1 0.4 1.1 15.149876960233016\n",
      "test error: \n",
      "14.690861994521951\n",
      "1000 0.1 0.4 1.2000000000000002 14.690861994521951\n",
      "test error: \n",
      "14.811461128920861\n",
      "1000 0.1 0.4 1.3 14.811461128920861\n",
      "test error: \n",
      "12.716792335905245\n",
      "1000 0.1 0.4 1.4000000000000001 12.716792335905245\n",
      "test error: \n",
      "14636.920368784378\n",
      "1000 0.1 0.5 0.0 14636.920368784378\n",
      "test error: \n",
      "12.152319320255028\n",
      "1000 0.1 0.5 0.1 12.152319320255028\n",
      "test error: \n",
      "16.216384552400704\n",
      "1000 0.1 0.5 0.2 16.216384552400704\n",
      "test error: \n",
      "15.95671538519686\n",
      "1000 0.1 0.5 0.30000000000000004 15.95671538519686\n",
      "test error: \n",
      "15.769251922194547\n",
      "1000 0.1 0.5 0.4 15.769251922194547\n",
      "test error: \n",
      "15.609958399345107\n",
      "1000 0.1 0.5 0.5 15.609958399345107\n",
      "test error: \n",
      "15.46012293248402\n",
      "1000 0.1 0.5 0.6000000000000001 15.46012293248402\n",
      "test error: \n",
      "15.3290104377465\n",
      "1000 0.1 0.5 0.7000000000000001 15.3290104377465\n",
      "test error: \n",
      "15.393421241724562\n",
      "1000 0.1 0.5 0.8 15.393421241724562\n",
      "test error: \n",
      "15.309151467209185\n",
      "1000 0.1 0.5 0.9 15.309151467209185\n",
      "test error: \n",
      "15.221962503717346\n",
      "1000 0.1 0.5 1.0 15.221962503717346\n",
      "test error: \n",
      "15.13092884905878\n",
      "1000 0.1 0.5 1.1 15.13092884905878\n",
      "test error: \n",
      "15.008478192228543\n",
      "1000 0.1 0.5 1.2000000000000002 15.008478192228543\n",
      "test error: \n",
      "12.793158080433207\n",
      "1000 0.1 0.5 1.3 12.793158080433207\n",
      "test error: \n",
      "12.652582398053628\n",
      "1000 0.1 0.5 1.4000000000000001 12.652582398053628\n",
      "test error: \n",
      "16881.317958351217\n",
      "1000 0.1 0.6000000000000001 0.0 16881.317958351217\n",
      "test error: \n",
      "11.8624242041625\n",
      "1000 0.1 0.6000000000000001 0.1 11.8624242041625\n",
      "test error: \n",
      "16.158161048384997\n",
      "1000 0.1 0.6000000000000001 0.2 16.158161048384997\n",
      "test error: \n",
      "15.968120034383926\n",
      "1000 0.1 0.6000000000000001 0.30000000000000004 15.968120034383926\n",
      "test error: \n",
      "15.73183949091523\n",
      "1000 0.1 0.6000000000000001 0.4 15.73183949091523\n",
      "test error: \n",
      "15.580139922348478\n",
      "1000 0.1 0.6000000000000001 0.5 15.580139922348478\n",
      "test error: \n",
      "15.473435105606242\n",
      "1000 0.1 0.6000000000000001 0.6000000000000001 15.473435105606242\n",
      "test error: \n",
      "15.496447161965593\n",
      "1000 0.1 0.6000000000000001 0.7000000000000001 15.496447161965593\n",
      "test error: \n",
      "15.40248044545888\n",
      "1000 0.1 0.6000000000000001 0.8 15.40248044545888\n",
      "test error: \n",
      "15.302388764167748\n",
      "1000 0.1 0.6000000000000001 0.9 15.302388764167748\n",
      "test error: \n",
      "15.207212955556143\n",
      "1000 0.1 0.6000000000000001 1.0 15.207212955556143\n",
      "test error: \n",
      "15.107500646214737\n",
      "1000 0.1 0.6000000000000001 1.1 15.107500646214737\n",
      "test error: \n",
      "14.654303049701872\n",
      "1000 0.1 0.6000000000000001 1.2000000000000002 14.654303049701872\n",
      "test error: \n",
      "12.7248946495824\n",
      "1000 0.1 0.6000000000000001 1.3 12.7248946495824\n",
      "test error: \n",
      "15.171782287299456\n",
      "1000 0.1 0.6000000000000001 1.4000000000000001 15.171782287299456\n",
      "test error: \n",
      "9419.371410541986\n",
      "1000 0.1 0.7000000000000001 0.0 9419.371410541986\n",
      "test error: \n",
      "12.127878768358052\n",
      "1000 0.1 0.7000000000000001 0.1 12.127878768358052\n",
      "test error: \n",
      "10.989654018584496\n",
      "1000 0.1 0.7000000000000001 0.2 10.989654018584496\n",
      "test error: \n",
      "15.866868634239125\n",
      "1000 0.1 0.7000000000000001 0.30000000000000004 15.866868634239125\n",
      "test error: \n",
      "15.694330011893605\n",
      "1000 0.1 0.7000000000000001 0.4 15.694330011893605\n",
      "test error: \n",
      "15.521522768285852\n",
      "1000 0.1 0.7000000000000001 0.5 15.521522768285852\n",
      "test error: \n",
      "15.415128423577668\n",
      "1000 0.1 0.7000000000000001 0.6000000000000001 15.415128423577668\n",
      "test error: \n",
      "15.295532575213917\n",
      "1000 0.1 0.7000000000000001 0.7000000000000001 15.295532575213917\n",
      "test error: \n",
      "15.344010571541531\n",
      "1000 0.1 0.7000000000000001 0.8 15.344010571541531\n",
      "test error: \n",
      "15.269395641896486\n",
      "1000 0.1 0.7000000000000001 0.9 15.269395641896486\n",
      "test error: \n",
      "15.181583697176107\n",
      "1000 0.1 0.7000000000000001 1.0 15.181583697176107\n",
      "test error: \n",
      "15.088950531784167\n",
      "1000 0.1 0.7000000000000001 1.1 15.088950531784167\n",
      "test error: \n",
      "14.568959391406084\n",
      "1000 0.1 0.7000000000000001 1.2000000000000002 14.568959391406084\n",
      "test error: \n",
      "15.276727280292013\n",
      "1000 0.1 0.7000000000000001 1.3 15.276727280292013\n",
      "test error: \n",
      "15.179355253954293\n",
      "1000 0.1 0.7000000000000001 1.4000000000000001 15.179355253954293\n",
      "test error: \n",
      "39451.09326420642\n",
      "1000 0.1 0.8 0.0 39451.09326420642\n",
      "test error: \n",
      "14.44039799368904\n",
      "1000 0.1 0.8 0.1 14.44039799368904\n",
      "test error: \n",
      "13.841402821463207\n",
      "1000 0.1 0.8 0.2 13.841402821463207\n",
      "test error: \n",
      "15.91739736647694\n",
      "1000 0.1 0.8 0.30000000000000004 15.91739736647694\n",
      "test error: \n",
      "15.684411929642184\n",
      "1000 0.1 0.8 0.4 15.684411929642184\n",
      "test error: \n",
      "15.576680069596707\n",
      "1000 0.1 0.8 0.5 15.576680069596707\n",
      "test error: \n",
      "15.426567634782167\n",
      "1000 0.1 0.8 0.6000000000000001 15.426567634782167\n",
      "test error: \n",
      "15.299242373771554\n",
      "1000 0.1 0.8 0.7000000000000001 15.299242373771554\n",
      "test error: \n",
      "15.369978123303468\n",
      "1000 0.1 0.8 0.8 15.369978123303468\n",
      "test error: \n",
      "15.288157424653104\n",
      "1000 0.1 0.8 0.9 15.288157424653104\n",
      "test error: \n",
      "15.1992180281043\n",
      "1000 0.1 0.8 1.0 15.1992180281043\n",
      "test error: \n",
      "15.109417186741517\n",
      "1000 0.1 0.8 1.1 15.109417186741517\n",
      "test error: \n",
      "15.014876361126742\n",
      "1000 0.1 0.8 1.2000000000000002 15.014876361126742\n",
      "test error: \n",
      "12.765628269549149\n",
      "1000 0.1 0.8 1.3 12.765628269549149\n",
      "test error: \n",
      "15.182584592878271\n",
      "1000 0.1 0.8 1.4000000000000001 15.182584592878271\n",
      "test error: \n",
      "7174.107194828649\n",
      "1000 0.1 0.9 0.0 7174.107194828649\n",
      "test error: \n",
      "16.182007489570804\n",
      "1000 0.1 0.9 0.1 16.182007489570804\n",
      "test error: \n",
      "16.28412748995697\n",
      "1000 0.1 0.9 0.2 16.28412748995697\n",
      "test error: \n",
      "15.988920549726515\n",
      "1000 0.1 0.9 0.30000000000000004 15.988920549726515\n",
      "test error: \n",
      "15.782190510920188\n",
      "1000 0.1 0.9 0.4 15.782190510920188\n",
      "test error: \n",
      "15.604967350045973\n",
      "1000 0.1 0.9 0.5 15.604967350045973\n",
      "test error: \n",
      "15.458892613489118\n",
      "1000 0.1 0.9 0.6000000000000001 15.458892613489118\n",
      "test error: \n",
      "15.535586278822299\n",
      "1000 0.1 0.9 0.7000000000000001 15.535586278822299\n",
      "test error: \n",
      "15.431651824867224\n",
      "1000 0.1 0.9 0.8 15.431651824867224\n",
      "test error: \n",
      "15.33028105316343\n",
      "1000 0.1 0.9 0.9 15.33028105316343\n",
      "test error: \n",
      "15.233637167085982\n",
      "1000 0.1 0.9 1.0 15.233637167085982\n",
      "test error: \n",
      "15.134100962315742\n",
      "1000 0.1 0.9 1.1 15.134100962315742\n",
      "test error: \n",
      "15.410522582283535\n",
      "1000 0.1 0.9 1.2000000000000002 15.410522582283535\n",
      "test error: \n",
      "15.310299862871465\n",
      "1000 0.1 0.9 1.3 15.310299862871465\n",
      "test error: \n",
      "15.211593604975784\n",
      "1000 0.1 0.9 1.4000000000000001 15.211593604975784\n",
      "test error: \n",
      "1936.5559441860873\n",
      "1000 0.2 0.0 0.0 1936.5559441860873\n",
      "test error: \n",
      "10.723419025219581\n",
      "1000 0.2 0.0 0.1 10.723419025219581\n",
      "test error: \n",
      "16.375832773172597\n",
      "1000 0.2 0.0 0.2 16.375832773172597\n",
      "test error: \n",
      "16.159942348382742\n",
      "1000 0.2 0.0 0.30000000000000004 16.159942348382742\n",
      "test error: \n",
      "15.979288987112744\n",
      "1000 0.2 0.0 0.4 15.979288987112744\n",
      "test error: \n",
      "15.784013879502908\n",
      "1000 0.2 0.0 0.5 15.784013879502908\n",
      "test error: \n",
      "15.733250816417879\n",
      "1000 0.2 0.0 0.6000000000000001 15.733250816417879\n",
      "test error: \n",
      "15.594923278222986\n",
      "1000 0.2 0.0 0.7000000000000001 15.594923278222986\n",
      "test error: \n",
      "15.4730275389687\n",
      "1000 0.2 0.0 0.8 15.4730275389687\n",
      "test error: \n",
      "15.365636479719006\n",
      "1000 0.2 0.0 0.9 15.365636479719006\n",
      "test error: \n",
      "15.26118429576979\n",
      "1000 0.2 0.0 1.0 15.26118429576979\n",
      "test error: \n",
      "15.095611227556786\n",
      "1000 0.2 0.0 1.1 15.095611227556786\n",
      "test error: \n",
      "14.961881051319004\n",
      "1000 0.2 0.0 1.2000000000000002 14.961881051319004\n",
      "test error: \n",
      "14.873267242643037\n",
      "1000 0.2 0.0 1.3 14.873267242643037\n",
      "test error: \n",
      "15.200476516562903\n",
      "1000 0.2 0.0 1.4000000000000001 15.200476516562903\n",
      "test error: \n",
      "633.4125648872117\n",
      "1000 0.2 0.1 0.0 633.4125648872117\n",
      "test error: \n",
      "11.829498515758257\n",
      "1000 0.2 0.1 0.1 11.829498515758257\n",
      "test error: \n",
      "16.45966857043474\n",
      "1000 0.2 0.1 0.2 16.45966857043474\n",
      "test error: \n",
      "16.12614417207818\n",
      "1000 0.2 0.1 0.30000000000000004 16.12614417207818\n",
      "test error: \n",
      "16.008520426771792\n",
      "1000 0.2 0.1 0.4 16.008520426771792\n",
      "test error: \n",
      "15.798574280363804\n",
      "1000 0.2 0.1 0.5 15.798574280363804\n",
      "test error: \n",
      "15.594626338874534\n",
      "1000 0.2 0.1 0.6000000000000001 15.594626338874534\n",
      "test error: \n",
      "15.574094192384596\n",
      "1000 0.2 0.1 0.7000000000000001 15.574094192384596\n",
      "test error: \n",
      "15.48284655896535\n",
      "1000 0.2 0.1 0.8 15.48284655896535\n",
      "test error: \n",
      "15.325068397139233\n",
      "1000 0.2 0.1 0.9 15.325068397139233\n",
      "test error: \n",
      "15.057210873246252\n",
      "1000 0.2 0.1 1.0 15.057210873246252\n",
      "test error: \n",
      "13.329114326176633\n",
      "1000 0.2 0.1 1.1 13.329114326176633\n",
      "test error: \n",
      "13.315486547749517\n",
      "1000 0.2 0.1 1.2000000000000002 13.315486547749517\n",
      "test error: \n",
      "13.255202335648667\n",
      "1000 0.2 0.1 1.3 13.255202335648667\n",
      "test error: \n",
      "13.098621707562762\n",
      "1000 0.2 0.1 1.4000000000000001 13.098621707562762\n",
      "test error: \n",
      "7655.627785277198\n",
      "1000 0.2 0.2 0.0 7655.627785277198\n",
      "test error: \n",
      "11.641434298638407\n",
      "1000 0.2 0.2 0.1 11.641434298638407\n",
      "test error: \n",
      "16.447293388422146\n",
      "1000 0.2 0.2 0.2 16.447293388422146\n",
      "test error: \n",
      "16.174765462936755\n",
      "1000 0.2 0.2 0.30000000000000004 16.174765462936755\n",
      "test error: \n",
      "15.975965919456787\n",
      "1000 0.2 0.2 0.4 15.975965919456787\n",
      "test error: \n",
      "15.776922181848109\n",
      "1000 0.2 0.2 0.5 15.776922181848109\n",
      "test error: \n",
      "15.725812564287617\n",
      "1000 0.2 0.2 0.6000000000000001 15.725812564287617\n",
      "test error: \n",
      "15.632332231485725\n",
      "1000 0.2 0.2 0.7000000000000001 15.632332231485725\n",
      "test error: \n",
      "15.524440666129925\n",
      "1000 0.2 0.2 0.8 15.524440666129925\n",
      "test error: \n",
      "15.407080828477925\n",
      "1000 0.2 0.2 0.9 15.407080828477925\n",
      "test error: \n",
      "15.255841790176074\n",
      "1000 0.2 0.2 1.0 15.255841790176074\n",
      "test error: \n",
      "13.338538958379102\n",
      "1000 0.2 0.2 1.1 13.338538958379102\n",
      "test error: \n",
      "13.30197928071982\n",
      "1000 0.2 0.2 1.2000000000000002 13.30197928071982\n",
      "test error: \n",
      "13.234746864384814\n",
      "1000 0.2 0.2 1.3 13.234746864384814\n",
      "test error: \n",
      "14.990667604573071\n",
      "1000 0.2 0.2 1.4000000000000001 14.990667604573071\n",
      "test error: \n",
      "1948.1360273700654\n",
      "1000 0.2 0.30000000000000004 0.0 1948.1360273700654\n",
      "test error: \n",
      "11.53075960612617\n",
      "1000 0.2 0.30000000000000004 0.1 11.53075960612617\n",
      "test error: \n",
      "16.25587739691955\n",
      "1000 0.2 0.30000000000000004 0.2 16.25587739691955\n",
      "test error: \n",
      "16.082307554505352\n",
      "1000 0.2 0.30000000000000004 0.30000000000000004 16.082307554505352\n",
      "test error: \n",
      "15.951361832653449\n",
      "1000 0.2 0.30000000000000004 0.4 15.951361832653449\n",
      "test error: \n",
      "15.727262389326919\n",
      "1000 0.2 0.30000000000000004 0.5 15.727262389326919\n",
      "test error: \n",
      "15.55596087015557\n",
      "1000 0.2 0.30000000000000004 0.6000000000000001 15.55596087015557\n",
      "test error: \n",
      "15.550135151445318\n",
      "1000 0.2 0.30000000000000004 0.7000000000000001 15.550135151445318\n",
      "test error: \n",
      "15.462623201257147\n",
      "1000 0.2 0.30000000000000004 0.8 15.462623201257147\n",
      "test error: \n",
      "15.364985273618265\n",
      "1000 0.2 0.30000000000000004 0.9 15.364985273618265\n",
      "test error: \n",
      "15.270103749351444\n",
      "1000 0.2 0.30000000000000004 1.0 15.270103749351444\n",
      "test error: \n",
      "13.26875000287566\n",
      "1000 0.2 0.30000000000000004 1.1 13.26875000287566\n",
      "test error: \n",
      "13.266997094131822\n",
      "1000 0.2 0.30000000000000004 1.2000000000000002 13.266997094131822\n",
      "test error: \n",
      "13.210157994273764\n",
      "1000 0.2 0.30000000000000004 1.3 13.210157994273764\n",
      "test error: \n",
      "13.098521195896057\n",
      "1000 0.2 0.30000000000000004 1.4000000000000001 13.098521195896057\n",
      "test error: \n",
      "2870.4868676846554\n",
      "1000 0.2 0.4 0.0 2870.4868676846554\n",
      "test error: \n",
      "11.84419352198137\n",
      "1000 0.2 0.4 0.1 11.84419352198137\n",
      "test error: \n",
      "12.918282537086101\n",
      "1000 0.2 0.4 0.2 12.918282537086101\n",
      "test error: \n",
      "16.13541527357489\n",
      "1000 0.2 0.4 0.30000000000000004 16.13541527357489\n",
      "test error: \n",
      "15.920135460230286\n",
      "1000 0.2 0.4 0.4 15.920135460230286\n",
      "test error: \n",
      "15.70609649516404\n",
      "1000 0.2 0.4 0.5 15.70609649516404\n",
      "test error: \n",
      "15.547298442175187\n",
      "1000 0.2 0.4 0.6000000000000001 15.547298442175187\n",
      "test error: \n",
      "15.585970125443247\n",
      "1000 0.2 0.4 0.7000000000000001 15.585970125443247\n",
      "test error: \n",
      "15.488588978624447\n",
      "1000 0.2 0.4 0.8 15.488588978624447\n",
      "test error: \n",
      "15.362802615255568\n",
      "1000 0.2 0.4 0.9 15.362802615255568\n",
      "test error: \n",
      "15.159566928797869\n",
      "1000 0.2 0.4 1.0 15.159566928797869\n",
      "test error: \n",
      "13.284498599577663\n",
      "1000 0.2 0.4 1.1 13.284498599577663\n",
      "test error: \n",
      "13.285043229459488\n",
      "1000 0.2 0.4 1.2000000000000002 13.285043229459488\n",
      "test error: \n",
      "13.227918127722637\n",
      "1000 0.2 0.4 1.3 13.227918127722637\n",
      "test error: \n",
      "13.158052492131842\n",
      "1000 0.2 0.4 1.4000000000000001 13.158052492131842\n",
      "test error: \n",
      "2103.178930895823\n",
      "1000 0.2 0.5 0.0 2103.178930895823\n",
      "test error: \n",
      "12.710678134901354\n",
      "1000 0.2 0.5 0.1 12.710678134901354\n",
      "test error: \n",
      "16.280210479936308\n",
      "1000 0.2 0.5 0.2 16.280210479936308\n",
      "test error: \n",
      "16.04346218713776\n",
      "1000 0.2 0.5 0.30000000000000004 16.04346218713776\n",
      "test error: \n",
      "15.877625807512343\n",
      "1000 0.2 0.5 0.4 15.877625807512343\n",
      "test error: \n",
      "15.678135169148819\n",
      "1000 0.2 0.5 0.5 15.678135169148819\n",
      "test error: \n",
      "15.515469009618961\n",
      "1000 0.2 0.5 0.6000000000000001 15.515469009618961\n",
      "test error: \n",
      "15.381176732891815\n",
      "1000 0.2 0.5 0.7000000000000001 15.381176732891815\n",
      "test error: \n",
      "15.40866012137601\n",
      "1000 0.2 0.5 0.8 15.40866012137601\n",
      "test error: \n",
      "15.340910461810916\n",
      "1000 0.2 0.5 0.9 15.340910461810916\n",
      "test error: \n",
      "15.22267394545207\n",
      "1000 0.2 0.5 1.0 15.22267394545207\n",
      "test error: \n",
      "14.930138689361716\n",
      "1000 0.2 0.5 1.1 14.930138689361716\n",
      "test error: \n",
      "13.129244109881839\n",
      "1000 0.2 0.5 1.2000000000000002 13.129244109881839\n",
      "test error: \n",
      "13.194543153433916\n",
      "1000 0.2 0.5 1.3 13.194543153433916\n",
      "test error: \n",
      "13.081316970002009\n",
      "1000 0.2 0.5 1.4000000000000001 13.081316970002009\n",
      "test error: \n",
      "4716.811487835612\n",
      "1000 0.2 0.6000000000000001 0.0 4716.811487835612\n",
      "test error: \n",
      "13.944568575182062\n",
      "1000 0.2 0.6000000000000001 0.1 13.944568575182062\n",
      "test error: \n",
      "16.25490730340427\n",
      "1000 0.2 0.6000000000000001 0.2 16.25490730340427\n",
      "test error: \n",
      "15.980728786777563\n",
      "1000 0.2 0.6000000000000001 0.30000000000000004 15.980728786777563\n",
      "test error: \n",
      "15.859663907710836\n",
      "1000 0.2 0.6000000000000001 0.4 15.859663907710836\n",
      "test error: \n",
      "15.667924768166806\n",
      "1000 0.2 0.6000000000000001 0.5 15.667924768166806\n",
      "test error: \n",
      "15.498929779454746\n",
      "1000 0.2 0.6000000000000001 0.6000000000000001 15.498929779454746\n",
      "test error: \n",
      "15.512293818236637\n",
      "1000 0.2 0.6000000000000001 0.7000000000000001 15.512293818236637\n",
      "test error: \n",
      "15.394455252618137\n",
      "1000 0.2 0.6000000000000001 0.8 15.394455252618137\n",
      "test error: \n",
      "15.084272723101854\n",
      "1000 0.2 0.6000000000000001 0.9 15.084272723101854\n",
      "test error: \n",
      "14.969914654391504\n",
      "1000 0.2 0.6000000000000001 1.0 14.969914654391504\n",
      "test error: \n",
      "14.990761329971301\n",
      "1000 0.2 0.6000000000000001 1.1 14.990761329971301\n",
      "test error: \n",
      "14.952642659071033\n",
      "1000 0.2 0.6000000000000001 1.2000000000000002 14.952642659071033\n",
      "test error: \n",
      "14.906835024618058\n",
      "1000 0.2 0.6000000000000001 1.3 14.906835024618058\n",
      "test error: \n",
      "15.196570541268294\n",
      "1000 0.2 0.6000000000000001 1.4000000000000001 15.196570541268294\n",
      "test error: \n",
      "3115.733051944559\n",
      "1000 0.2 0.7000000000000001 0.0 3115.733051944559\n",
      "test error: \n",
      "16.13050029290776\n",
      "1000 0.2 0.7000000000000001 0.1 16.13050029290776\n",
      "test error: \n",
      "16.244084091305425\n",
      "1000 0.2 0.7000000000000001 0.2 16.244084091305425\n",
      "test error: \n",
      "13.44710239058772\n",
      "1000 0.2 0.7000000000000001 0.30000000000000004 13.44710239058772\n",
      "test error: \n",
      "15.752415103510991\n",
      "1000 0.2 0.7000000000000001 0.4 15.752415103510991\n",
      "test error: \n",
      "15.632115985881875\n",
      "1000 0.2 0.7000000000000001 0.5 15.632115985881875\n",
      "test error: \n",
      "15.470742495533326\n",
      "1000 0.2 0.7000000000000001 0.6000000000000001 15.470742495533326\n",
      "test error: \n",
      "15.326548759553953\n",
      "1000 0.2 0.7000000000000001 0.7000000000000001 15.326548759553953\n",
      "test error: \n",
      "15.193720300708431\n",
      "1000 0.2 0.7000000000000001 0.8 15.193720300708431\n",
      "test error: \n",
      "15.092558105944008\n",
      "1000 0.2 0.7000000000000001 0.9 15.092558105944008\n",
      "test error: \n",
      "14.911232582210838\n",
      "1000 0.2 0.7000000000000001 1.0 14.911232582210838\n",
      "test error: \n",
      "14.766682651634245\n",
      "1000 0.2 0.7000000000000001 1.1 14.766682651634245\n",
      "test error: \n",
      "15.415997571826951\n",
      "1000 0.2 0.7000000000000001 1.2000000000000002 15.415997571826951\n",
      "test error: \n",
      "15.313727925992957\n",
      "1000 0.2 0.7000000000000001 1.3 15.313727925992957\n",
      "test error: \n",
      "15.214538096109559\n",
      "1000 0.2 0.7000000000000001 1.4000000000000001 15.214538096109559\n",
      "test error: \n",
      "5784.940655207784\n",
      "1000 0.2 0.8 0.0 5784.940655207784\n",
      "test error: \n",
      "16.476431422718296\n",
      "1000 0.2 0.8 0.1 16.476431422718296\n",
      "test error: \n",
      "16.392443201444635\n",
      "1000 0.2 0.8 0.2 16.392443201444635\n",
      "test error: \n",
      "16.012667339577014\n",
      "1000 0.2 0.8 0.30000000000000004 16.012667339577014\n",
      "test error: \n",
      "15.820764148820018\n",
      "1000 0.2 0.8 0.4 15.820764148820018\n",
      "test error: \n",
      "15.620776373916145\n",
      "1000 0.2 0.8 0.5 15.620776373916145\n",
      "test error: \n",
      "15.451854747559846\n",
      "1000 0.2 0.8 0.6000000000000001 15.451854747559846\n",
      "test error: \n",
      "15.309919718432718\n",
      "1000 0.2 0.8 0.7000000000000001 15.309919718432718\n",
      "test error: \n",
      "15.345014707820647\n",
      "1000 0.2 0.8 0.8 15.345014707820647\n",
      "test error: \n",
      "15.28896349879768\n",
      "1000 0.2 0.8 0.9 15.28896349879768\n",
      "test error: \n",
      "15.203533009558738\n",
      "1000 0.2 0.8 1.0 15.203533009558738\n",
      "test error: \n",
      "15.117820945177227\n",
      "1000 0.2 0.8 1.1 15.117820945177227\n",
      "test error: \n",
      "14.932511990410458\n",
      "1000 0.2 0.8 1.2000000000000002 14.932511990410458\n",
      "test error: \n",
      "14.879013824744128\n",
      "1000 0.2 0.8 1.3 14.879013824744128\n",
      "test error: \n",
      "15.225069298278507\n",
      "1000 0.2 0.8 1.4000000000000001 15.225069298278507\n",
      "test error: \n",
      "693.7562451540009\n",
      "1000 0.2 0.9 0.0 693.7562451540009\n",
      "test error: \n",
      "16.22561714466275\n",
      "1000 0.2 0.9 0.1 16.22561714466275\n",
      "test error: \n",
      "16.944840463542764\n",
      "1000 0.2 0.9 0.2 16.944840463542764\n",
      "test error: \n",
      "16.654275734204102\n",
      "1000 0.2 0.9 0.30000000000000004 16.654275734204102\n",
      "test error: \n",
      "15.868626426041535\n",
      "1000 0.2 0.9 0.4 15.868626426041535\n",
      "test error: \n",
      "15.68850040360563\n",
      "1000 0.2 0.9 0.5 15.68850040360563\n",
      "test error: \n",
      "15.52453147868238\n",
      "1000 0.2 0.9 0.6000000000000001 15.52453147868238\n",
      "test error: \n",
      "15.586437058538689\n",
      "1000 0.2 0.9 0.7000000000000001 15.586437058538689\n",
      "test error: \n",
      "15.478697002059441\n",
      "1000 0.2 0.9 0.8 15.478697002059441\n",
      "test error: \n",
      "15.376253589871995\n",
      "1000 0.2 0.9 0.9 15.376253589871995\n",
      "test error: \n",
      "15.278184921432608\n",
      "1000 0.2 0.9 1.0 15.278184921432608\n",
      "test error: \n",
      "15.59973688260287\n",
      "1000 0.2 0.9 1.1 15.59973688260287\n",
      "test error: \n",
      "15.491234248458172\n",
      "1000 0.2 0.9 1.2000000000000002 15.491234248458172\n",
      "test error: \n",
      "15.383447499309401\n",
      "1000 0.2 0.9 1.3 15.383447499309401\n",
      "test error: \n",
      "15.2810976092671\n",
      "1000 0.2 0.9 1.4000000000000001 15.2810976092671\n",
      "test error: \n",
      "460.9558464826899\n",
      "1000 0.30000000000000004 0.0 0.0 460.9558464826899\n",
      "test error: \n",
      "11.686482864361457\n",
      "1000 0.30000000000000004 0.0 0.1 11.686482864361457\n",
      "test error: \n",
      "12.183733047835563\n",
      "1000 0.30000000000000004 0.0 0.2 12.183733047835563\n",
      "test error: \n",
      "16.301172033569316\n",
      "1000 0.30000000000000004 0.0 0.30000000000000004 16.301172033569316\n",
      "test error: \n",
      "16.135860926592926\n",
      "1000 0.30000000000000004 0.0 0.4 16.135860926592926\n",
      "test error: \n",
      "15.939111301524754\n",
      "1000 0.30000000000000004 0.0 0.5 15.939111301524754\n",
      "test error: \n",
      "15.841276679425194\n",
      "1000 0.30000000000000004 0.0 0.6000000000000001 15.841276679425194\n",
      "test error: \n",
      "15.707700839398797\n",
      "1000 0.30000000000000004 0.0 0.7000000000000001 15.707700839398797\n",
      "test error: \n",
      "15.597954535719245\n",
      "1000 0.30000000000000004 0.0 0.8 15.597954535719245\n",
      "test error: \n",
      "13.443549821538182\n",
      "1000 0.30000000000000004 0.0 0.9 13.443549821538182\n",
      "test error: \n",
      "13.363142097315333\n",
      "1000 0.30000000000000004 0.0 1.0 13.363142097315333\n",
      "test error: \n",
      "13.257865052877241\n",
      "1000 0.30000000000000004 0.0 1.1 13.257865052877241\n",
      "test error: \n",
      "15.117303942487593\n",
      "1000 0.30000000000000004 0.0 1.2000000000000002 15.117303942487593\n",
      "test error: \n",
      "14.989903475872037\n",
      "1000 0.30000000000000004 0.0 1.3 14.989903475872037\n",
      "test error: \n",
      "15.255475606188178\n",
      "1000 0.30000000000000004 0.0 1.4000000000000001 15.255475606188178\n",
      "test error: \n",
      "1432.186662327421\n",
      "1000 0.30000000000000004 0.1 0.0 1432.186662327421\n",
      "test error: \n",
      "11.9245756856084\n",
      "1000 0.30000000000000004 0.1 0.1 11.9245756856084\n",
      "test error: \n",
      "11.029182189518789\n",
      "1000 0.30000000000000004 0.1 0.2 11.029182189518789\n",
      "test error: \n",
      "16.405730713395606\n",
      "1000 0.30000000000000004 0.1 0.30000000000000004 16.405730713395606\n",
      "test error: \n",
      "16.20054775025279\n",
      "1000 0.30000000000000004 0.1 0.4 16.20054775025279\n",
      "test error: \n",
      "15.971783905297963\n",
      "1000 0.30000000000000004 0.1 0.5 15.971783905297963\n",
      "test error: \n",
      "15.816819266749906\n",
      "1000 0.30000000000000004 0.1 0.6000000000000001 15.816819266749906\n",
      "test error: \n",
      "15.587048096777941\n",
      "1000 0.30000000000000004 0.1 0.7000000000000001 15.587048096777941\n",
      "test error: \n",
      "15.544522403966917\n",
      "1000 0.30000000000000004 0.1 0.8 15.544522403966917\n",
      "test error: \n",
      "15.486303944449087\n",
      "1000 0.30000000000000004 0.1 0.9 15.486303944449087\n",
      "test error: \n",
      "13.428879873723591\n",
      "1000 0.30000000000000004 0.1 1.0 13.428879873723591\n",
      "test error: \n",
      "13.430638092269538\n",
      "1000 0.30000000000000004 0.1 1.1 13.430638092269538\n",
      "test error: \n",
      "13.395134044282724\n",
      "1000 0.30000000000000004 0.1 1.2000000000000002 13.395134044282724\n",
      "test error: \n",
      "13.327571974428412\n",
      "1000 0.30000000000000004 0.1 1.3 13.327571974428412\n",
      "test error: \n",
      "13.253843490866696\n",
      "1000 0.30000000000000004 0.1 1.4000000000000001 13.253843490866696\n",
      "test error: \n",
      "877.3554533618122\n",
      "1000 0.30000000000000004 0.2 0.0 877.3554533618122\n",
      "test error: \n",
      "13.018929461390433\n",
      "1000 0.30000000000000004 0.2 0.1 13.018929461390433\n",
      "test error: \n",
      "16.568605112080487\n",
      "1000 0.30000000000000004 0.2 0.2 16.568605112080487\n",
      "test error: \n",
      "16.383881788125542\n",
      "1000 0.30000000000000004 0.2 0.30000000000000004 16.383881788125542\n",
      "test error: \n",
      "16.163387795239945\n",
      "1000 0.30000000000000004 0.2 0.4 16.163387795239945\n",
      "test error: \n",
      "15.968756385319763\n",
      "1000 0.30000000000000004 0.2 0.5 15.968756385319763\n",
      "test error: \n",
      "15.912988171149973\n",
      "1000 0.30000000000000004 0.2 0.6000000000000001 15.912988171149973\n",
      "test error: \n",
      "15.782192363389395\n",
      "1000 0.30000000000000004 0.2 0.7000000000000001 15.782192363389395\n",
      "test error: \n",
      "15.658928741355817\n",
      "1000 0.30000000000000004 0.2 0.8 15.658928741355817\n",
      "test error: \n",
      "15.559242935485576\n",
      "1000 0.30000000000000004 0.2 0.9 15.559242935485576\n",
      "test error: \n",
      "13.440452737554724\n",
      "1000 0.30000000000000004 0.2 1.0 13.440452737554724\n",
      "test error: \n",
      "13.429800233615783\n",
      "1000 0.30000000000000004 0.2 1.1 13.429800233615783\n",
      "test error: \n",
      "13.374243982461635\n",
      "1000 0.30000000000000004 0.2 1.2000000000000002 13.374243982461635\n",
      "test error: \n",
      "13.302782740745522\n",
      "1000 0.30000000000000004 0.2 1.3 13.302782740745522\n",
      "test error: \n",
      "13.228533721084728\n",
      "1000 0.30000000000000004 0.2 1.4000000000000001 13.228533721084728\n",
      "test error: \n",
      "350.52625734210784\n",
      "1000 0.30000000000000004 0.30000000000000004 0.0 350.52625734210784\n",
      "test error: \n",
      "12.24979591468661\n",
      "1000 0.30000000000000004 0.30000000000000004 0.1 12.24979591468661\n",
      "test error: \n",
      "14.159978390022811\n",
      "1000 0.30000000000000004 0.30000000000000004 0.2 14.159978390022811\n",
      "test error: \n",
      "16.24858331124948\n",
      "1000 0.30000000000000004 0.30000000000000004 0.30000000000000004 16.24858331124948\n",
      "test error: \n",
      "16.053110055423467\n",
      "1000 0.30000000000000004 0.30000000000000004 0.4 16.053110055423467\n",
      "test error: \n",
      "15.861609592837246\n",
      "1000 0.30000000000000004 0.30000000000000004 0.5 15.861609592837246\n",
      "test error: \n",
      "15.690182830932224\n",
      "1000 0.30000000000000004 0.30000000000000004 0.6000000000000001 15.690182830932224\n",
      "test error: \n",
      "15.661014594925481\n",
      "1000 0.30000000000000004 0.30000000000000004 0.7000000000000001 15.661014594925481\n",
      "test error: \n",
      "15.564665770741458\n",
      "1000 0.30000000000000004 0.30000000000000004 0.8 15.564665770741458\n",
      "test error: \n",
      "15.475890240861421\n",
      "1000 0.30000000000000004 0.30000000000000004 0.9 15.475890240861421\n",
      "test error: \n",
      "15.388316393052971\n",
      "1000 0.30000000000000004 0.30000000000000004 1.0 15.388316393052971\n",
      "test error: \n",
      "13.335018510125865\n",
      "1000 0.30000000000000004 0.30000000000000004 1.1 13.335018510125865\n",
      "test error: \n",
      "13.32681931884047\n",
      "1000 0.30000000000000004 0.30000000000000004 1.2000000000000002 13.32681931884047\n",
      "test error: \n",
      "13.270703117733133\n",
      "1000 0.30000000000000004 0.30000000000000004 1.3 13.270703117733133\n",
      "test error: \n",
      "13.202025434231253\n",
      "1000 0.30000000000000004 0.30000000000000004 1.4000000000000001 13.202025434231253\n",
      "test error: \n",
      "748.5121290771046\n",
      "1000 0.30000000000000004 0.4 0.0 748.5121290771046\n",
      "test error: \n",
      "11.832703690887532\n",
      "1000 0.30000000000000004 0.4 0.1 11.832703690887532\n",
      "test error: \n",
      "16.451753096242385\n",
      "1000 0.30000000000000004 0.4 0.2 16.451753096242385\n",
      "test error: \n",
      "16.229230156526942\n",
      "1000 0.30000000000000004 0.4 0.30000000000000004 16.229230156526942\n",
      "test error: \n",
      "16.019295531122246\n",
      "1000 0.30000000000000004 0.4 0.4 16.019295531122246\n",
      "test error: \n",
      "15.832470893721707\n",
      "1000 0.30000000000000004 0.4 0.5 15.832470893721707\n",
      "test error: \n",
      "15.672948974252476\n",
      "1000 0.30000000000000004 0.4 0.6000000000000001 15.672948974252476\n",
      "test error: \n",
      "15.709450210059714\n",
      "1000 0.30000000000000004 0.4 0.7000000000000001 15.709450210059714\n",
      "test error: \n",
      "15.607415028156865\n",
      "1000 0.30000000000000004 0.4 0.8 15.607415028156865\n",
      "test error: \n",
      "15.516289163821124\n",
      "1000 0.30000000000000004 0.4 0.9 15.516289163821124\n",
      "test error: \n",
      "13.31567646317472\n",
      "1000 0.30000000000000004 0.4 1.0 13.31567646317472\n",
      "test error: \n",
      "13.372913016967415\n",
      "1000 0.30000000000000004 0.4 1.1 13.372913016967415\n",
      "test error: \n",
      "13.347743104531075\n",
      "1000 0.30000000000000004 0.4 1.2000000000000002 13.347743104531075\n",
      "test error: \n",
      "13.286560312368758\n",
      "1000 0.30000000000000004 0.4 1.3 13.286560312368758\n",
      "test error: \n",
      "13.216285365369774\n",
      "1000 0.30000000000000004 0.4 1.4000000000000001 13.216285365369774\n",
      "test error: \n",
      "513.6040615805966\n",
      "1000 0.30000000000000004 0.5 0.0 513.6040615805966\n",
      "test error: \n",
      "13.4121392216146\n",
      "1000 0.30000000000000004 0.5 0.1 13.4121392216146\n",
      "test error: \n",
      "16.406922629821256\n",
      "1000 0.30000000000000004 0.5 0.2 16.406922629821256\n",
      "test error: \n",
      "16.214172033308053\n",
      "1000 0.30000000000000004 0.5 0.30000000000000004 16.214172033308053\n",
      "test error: \n",
      "15.981157497330624\n",
      "1000 0.30000000000000004 0.5 0.4 15.981157497330624\n",
      "test error: \n",
      "15.791480674164232\n",
      "1000 0.30000000000000004 0.5 0.5 15.791480674164232\n",
      "test error: \n",
      "15.626147508732764\n",
      "1000 0.30000000000000004 0.5 0.6000000000000001 15.626147508732764\n",
      "test error: \n",
      "15.484501690468157\n",
      "1000 0.30000000000000004 0.5 0.7000000000000001 15.484501690468157\n",
      "test error: \n",
      "15.356132887085392\n",
      "1000 0.30000000000000004 0.5 0.8 15.356132887085392\n",
      "test error: \n",
      "15.393692093535941\n",
      "1000 0.30000000000000004 0.5 0.9 15.393692093535941\n",
      "test error: \n",
      "15.337329153637686\n",
      "1000 0.30000000000000004 0.5 1.0 15.337329153637686\n",
      "test error: \n",
      "15.25913955932388\n",
      "1000 0.30000000000000004 0.5 1.1 15.25913955932388\n",
      "test error: \n",
      "15.279613232248861\n",
      "1000 0.30000000000000004 0.5 1.2000000000000002 15.279613232248861\n",
      "test error: \n",
      "13.235105131163717\n",
      "1000 0.30000000000000004 0.5 1.3 13.235105131163717\n",
      "test error: \n",
      "13.19574584327508\n",
      "1000 0.30000000000000004 0.5 1.4000000000000001 13.19574584327508\n",
      "test error: \n",
      "596.2052754981697\n",
      "1000 0.30000000000000004 0.6000000000000001 0.0 596.2052754981697\n",
      "test error: \n",
      "13.876068426814388\n",
      "1000 0.30000000000000004 0.6000000000000001 0.1 13.876068426814388\n",
      "test error: \n",
      "16.332855881052758\n",
      "1000 0.30000000000000004 0.6000000000000001 0.2 16.332855881052758\n",
      "test error: \n",
      "16.086388269955947\n",
      "1000 0.30000000000000004 0.6000000000000001 0.30000000000000004 16.086388269955947\n",
      "test error: \n",
      "15.90178933139704\n",
      "1000 0.30000000000000004 0.6000000000000001 0.4 15.90178933139704\n",
      "test error: \n",
      "15.719709514492493\n",
      "1000 0.30000000000000004 0.6000000000000001 0.5 15.719709514492493\n",
      "test error: \n",
      "15.560715239139064\n",
      "1000 0.30000000000000004 0.6000000000000001 0.6000000000000001 15.560715239139064\n",
      "test error: \n",
      "15.424518857035592\n",
      "1000 0.30000000000000004 0.6000000000000001 0.7000000000000001 15.424518857035592\n",
      "test error: \n",
      "15.29694060620243\n",
      "1000 0.30000000000000004 0.6000000000000001 0.8 15.29694060620243\n",
      "test error: \n",
      "15.319185305401371\n",
      "1000 0.30000000000000004 0.6000000000000001 0.9 15.319185305401371\n",
      "test error: \n",
      "15.254665427932787\n",
      "1000 0.30000000000000004 0.6000000000000001 1.0 15.254665427932787\n",
      "test error: \n",
      "15.177671874448329\n",
      "1000 0.30000000000000004 0.6000000000000001 1.1 15.177671874448329\n",
      "test error: \n",
      "15.21880428736988\n",
      "1000 0.30000000000000004 0.6000000000000001 1.2000000000000002 15.21880428736988\n",
      "test error: \n",
      "15.077498014753596\n",
      "1000 0.30000000000000004 0.6000000000000001 1.3 15.077498014753596\n",
      "test error: \n",
      "12.798434971095624\n",
      "1000 0.30000000000000004 0.6000000000000001 1.4000000000000001 12.798434971095624\n",
      "test error: \n",
      "524.635228016029\n",
      "1000 0.30000000000000004 0.7000000000000001 0.0 524.635228016029\n",
      "test error: \n",
      "15.145830514281492\n",
      "1000 0.30000000000000004 0.7000000000000001 0.1 15.145830514281492\n",
      "test error: \n",
      "15.616464800327185\n",
      "1000 0.30000000000000004 0.7000000000000001 0.2 15.616464800327185\n",
      "test error: \n",
      "16.014002930690143\n",
      "1000 0.30000000000000004 0.7000000000000001 0.30000000000000004 16.014002930690143\n",
      "test error: \n",
      "15.825936537972481\n",
      "1000 0.30000000000000004 0.7000000000000001 0.4 15.825936537972481\n",
      "test error: \n",
      "15.611900664372799\n",
      "1000 0.30000000000000004 0.7000000000000001 0.5 15.611900664372799\n",
      "test error: \n",
      "15.457415809431357\n",
      "1000 0.30000000000000004 0.7000000000000001 0.6000000000000001 15.457415809431357\n",
      "test error: \n",
      "15.318140513889594\n",
      "1000 0.30000000000000004 0.7000000000000001 0.7000000000000001 15.318140513889594\n",
      "test error: \n",
      "15.18373932782851\n",
      "1000 0.30000000000000004 0.7000000000000001 0.8 15.18373932782851\n",
      "test error: \n",
      "15.066999156697511\n",
      "1000 0.30000000000000004 0.7000000000000001 0.9 15.066999156697511\n",
      "test error: \n",
      "14.937155515779688\n",
      "1000 0.30000000000000004 0.7000000000000001 1.0 14.937155515779688\n",
      "test error: \n",
      "14.817600995743756\n",
      "1000 0.30000000000000004 0.7000000000000001 1.1 14.817600995743756\n",
      "test error: \n",
      "15.482812242700705\n",
      "1000 0.30000000000000004 0.7000000000000001 1.2000000000000002 15.482812242700705\n",
      "test error: \n",
      "15.377103221875032\n",
      "1000 0.30000000000000004 0.7000000000000001 1.3 15.377103221875032\n",
      "test error: \n",
      "15.276096908458639\n",
      "1000 0.30000000000000004 0.7000000000000001 1.4000000000000001 15.276096908458639\n",
      "test error: \n",
      "504.955148090788\n",
      "1000 0.30000000000000004 0.8 0.0 504.955148090788\n",
      "test error: \n",
      "16.49612459166415\n",
      "1000 0.30000000000000004 0.8 0.1 16.49612459166415\n",
      "test error: \n",
      "16.49271360508724\n",
      "1000 0.30000000000000004 0.8 0.2 16.49271360508724\n",
      "test error: \n",
      "16.170882837610748\n",
      "1000 0.30000000000000004 0.8 0.30000000000000004 16.170882837610748\n",
      "test error: \n",
      "15.92872732026283\n",
      "1000 0.30000000000000004 0.8 0.4 15.92872732026283\n",
      "test error: \n",
      "15.715423774598905\n",
      "1000 0.30000000000000004 0.8 0.5 15.715423774598905\n",
      "test error: \n",
      "15.538443798812693\n",
      "1000 0.30000000000000004 0.8 0.6000000000000001 15.538443798812693\n",
      "test error: \n",
      "15.390999706403658\n",
      "1000 0.30000000000000004 0.8 0.7000000000000001 15.390999706403658\n",
      "test error: \n",
      "15.264960418346835\n",
      "1000 0.30000000000000004 0.8 0.8 15.264960418346835\n",
      "test error: \n",
      "15.34550109439786\n",
      "1000 0.30000000000000004 0.8 0.9 15.34550109439786\n",
      "test error: \n",
      "15.234168141653122\n",
      "1000 0.30000000000000004 0.8 1.0 15.234168141653122\n",
      "test error: \n",
      "15.107787291849766\n",
      "1000 0.30000000000000004 0.8 1.1 15.107787291849766\n",
      "test error: \n",
      "15.04665396691682\n",
      "1000 0.30000000000000004 0.8 1.2000000000000002 15.04665396691682\n",
      "test error: \n",
      "14.965628821145597\n",
      "1000 0.30000000000000004 0.8 1.3 14.965628821145597\n",
      "test error: \n",
      "15.288876202094631\n",
      "1000 0.30000000000000004 0.8 1.4000000000000001 15.288876202094631\n",
      "test error: \n",
      "2328.013047246247\n",
      "1000 0.30000000000000004 0.9 0.0 2328.013047246247\n",
      "test error: \n",
      "14.584094919123341\n",
      "1000 0.30000000000000004 0.9 0.1 14.584094919123341\n",
      "test error: \n",
      "16.954428609064678\n",
      "1000 0.30000000000000004 0.9 0.2 16.954428609064678\n",
      "test error: \n",
      "16.713822728233033\n",
      "1000 0.30000000000000004 0.9 0.30000000000000004 16.713822728233033\n",
      "test error: \n",
      "15.960668629605948\n",
      "1000 0.30000000000000004 0.9 0.4 15.960668629605948\n",
      "test error: \n",
      "16.21482627485861\n",
      "1000 0.30000000000000004 0.9 0.5 16.21482627485861\n",
      "test error: \n",
      "16.063167183310547\n",
      "1000 0.30000000000000004 0.9 0.6000000000000001 16.063167183310547\n",
      "test error: \n",
      "15.622192225418651\n",
      "1000 0.30000000000000004 0.9 0.7000000000000001 15.622192225418651\n",
      "test error: \n",
      "15.502908926272946\n",
      "1000 0.30000000000000004 0.9 0.8 15.502908926272946\n",
      "test error: \n",
      "15.391455590616069\n",
      "1000 0.30000000000000004 0.9 0.9 15.391455590616069\n",
      "test error: \n",
      "15.82125680404353\n",
      "1000 0.30000000000000004 0.9 1.0 15.82125680404353\n",
      "test error: \n",
      "15.697723217155339\n",
      "1000 0.30000000000000004 0.9 1.1 15.697723217155339\n",
      "test error: \n",
      "15.578351834794192\n",
      "1000 0.30000000000000004 0.9 1.2000000000000002 15.578351834794192\n",
      "test error: \n",
      "15.46518547247173\n",
      "1000 0.30000000000000004 0.9 1.3 15.46518547247173\n",
      "test error: \n",
      "15.357939414192638\n",
      "1000 0.30000000000000004 0.9 1.4000000000000001 15.357939414192638\n",
      "test error: \n",
      "317.27622245291604\n",
      "1000 0.4 0.0 0.0 317.27622245291604\n",
      "test error: \n",
      "11.916348009180394\n",
      "1000 0.4 0.0 0.1 11.916348009180394\n",
      "test error: \n",
      "10.98264367600903\n",
      "1000 0.4 0.0 0.2 10.98264367600903\n",
      "test error: \n",
      "16.480117809899223\n",
      "1000 0.4 0.0 0.30000000000000004 16.480117809899223\n",
      "test error: \n",
      "16.30866755018321\n",
      "1000 0.4 0.0 0.4 16.30866755018321\n",
      "test error: \n",
      "16.10425678109169\n",
      "1000 0.4 0.0 0.5 16.10425678109169\n",
      "test error: \n",
      "15.953918034824481\n",
      "1000 0.4 0.0 0.6000000000000001 15.953918034824481\n",
      "test error: \n",
      "13.74824781513323\n",
      "1000 0.4 0.0 0.7000000000000001 13.74824781513323\n",
      "test error: \n",
      "13.636864417318257\n",
      "1000 0.4 0.0 0.8 13.636864417318257\n",
      "test error: \n",
      "13.534754199601949\n",
      "1000 0.4 0.0 0.9 13.534754199601949\n",
      "test error: \n",
      "13.448171925910192\n",
      "1000 0.4 0.0 1.0 13.448171925910192\n",
      "test error: \n",
      "13.303171780073484\n",
      "1000 0.4 0.0 1.1 13.303171780073484\n",
      "test error: \n",
      "13.2137745096718\n",
      "1000 0.4 0.0 1.2000000000000002 13.2137745096718\n",
      "test error: \n",
      "15.42951702367179\n",
      "1000 0.4 0.0 1.3 15.42951702367179\n",
      "test error: \n",
      "15.322407016433747\n",
      "1000 0.4 0.0 1.4000000000000001 15.322407016433747\n",
      "test error: \n",
      "368.2936816446429\n",
      "1000 0.4 0.1 0.0 368.2936816446429\n",
      "test error: \n",
      "12.10110648629275\n",
      "1000 0.4 0.1 0.1 12.10110648629275\n",
      "test error: \n",
      "14.219731612498235\n",
      "1000 0.4 0.1 0.2 14.219731612498235\n",
      "test error: \n",
      "16.57301575882416\n",
      "1000 0.4 0.1 0.30000000000000004 16.57301575882416\n",
      "test error: \n",
      "16.34806700591048\n",
      "1000 0.4 0.1 0.4 16.34806700591048\n",
      "test error: \n",
      "16.15683593464372\n",
      "1000 0.4 0.1 0.5 16.15683593464372\n",
      "test error: \n",
      "15.992976937850855\n",
      "1000 0.4 0.1 0.6000000000000001 15.992976937850855\n",
      "test error: \n",
      "15.8261455028173\n",
      "1000 0.4 0.1 0.7000000000000001 15.8261455028173\n",
      "test error: \n",
      "13.681708629447595\n",
      "1000 0.4 0.1 0.8 13.681708629447595\n",
      "test error: \n",
      "13.641160620294228\n",
      "1000 0.4 0.1 0.9 13.641160620294228\n",
      "test error: \n",
      "13.6353284541617\n",
      "1000 0.4 0.1 1.0 13.6353284541617\n",
      "test error: \n",
      "13.576816945707769\n",
      "1000 0.4 0.1 1.1 13.576816945707769\n",
      "test error: \n",
      "13.499073567231918\n",
      "1000 0.4 0.1 1.2000000000000002 13.499073567231918\n",
      "test error: \n",
      "13.412317875281413\n",
      "1000 0.4 0.1 1.3 13.412317875281413\n",
      "test error: \n",
      "13.325477610676813\n",
      "1000 0.4 0.1 1.4000000000000001 13.325477610676813\n",
      "test error: \n",
      "859.3962623107749\n",
      "1000 0.4 0.2 0.0 859.3962623107749\n",
      "test error: \n",
      "12.941075770108178\n",
      "1000 0.4 0.2 0.1 12.941075770108178\n",
      "test error: \n",
      "16.792534072078904\n",
      "1000 0.4 0.2 0.2 16.792534072078904\n",
      "test error: \n",
      "16.611843253544812\n",
      "1000 0.4 0.2 0.30000000000000004 16.611843253544812\n",
      "test error: \n",
      "16.41869603784801\n",
      "1000 0.4 0.2 0.4 16.41869603784801\n",
      "test error: \n",
      "16.26280383125147\n",
      "1000 0.4 0.2 0.5 16.26280383125147\n",
      "test error: \n",
      "16.135207197341213\n",
      "1000 0.4 0.2 0.6000000000000001 16.135207197341213\n",
      "test error: \n",
      "15.978838491066636\n",
      "1000 0.4 0.2 0.7000000000000001 15.978838491066636\n",
      "test error: \n",
      "15.861933593123656\n",
      "1000 0.4 0.2 0.8 15.861933593123656\n",
      "test error: \n",
      "13.565706595708646\n",
      "1000 0.4 0.2 0.9 13.565706595708646\n",
      "test error: \n",
      "13.561197386732536\n",
      "1000 0.4 0.2 1.0 13.561197386732536\n",
      "test error: \n",
      "13.52271563137905\n",
      "1000 0.4 0.2 1.1 13.52271563137905\n",
      "test error: \n",
      "13.45809908010372\n",
      "1000 0.4 0.2 1.2000000000000002 13.45809908010372\n",
      "test error: \n",
      "13.381122514055388\n",
      "1000 0.4 0.2 1.3 13.381122514055388\n",
      "test error: \n",
      "13.302399426933214\n",
      "1000 0.4 0.2 1.4000000000000001 13.302399426933214\n",
      "test error: \n",
      "1398.5714101645785\n",
      "1000 0.4 0.30000000000000004 0.0 1398.5714101645785\n",
      "test error: \n",
      "11.967396315551978\n",
      "1000 0.4 0.30000000000000004 0.1 11.967396315551978\n",
      "test error: \n",
      "15.666198390580686\n",
      "1000 0.4 0.30000000000000004 0.2 15.666198390580686\n",
      "test error: \n",
      "16.428399397191956\n",
      "1000 0.4 0.30000000000000004 0.30000000000000004 16.428399397191956\n",
      "test error: \n",
      "16.24389335289219\n",
      "1000 0.4 0.30000000000000004 0.4 16.24389335289219\n",
      "test error: \n",
      "16.05928996703846\n",
      "1000 0.4 0.30000000000000004 0.5 16.05928996703846\n",
      "test error: \n",
      "15.891684891593787\n",
      "1000 0.4 0.30000000000000004 0.6000000000000001 15.891684891593787\n",
      "test error: \n",
      "15.826581816953047\n",
      "1000 0.4 0.30000000000000004 0.7000000000000001 15.826581816953047\n",
      "test error: \n",
      "15.73445053062485\n",
      "1000 0.4 0.30000000000000004 0.8 15.73445053062485\n",
      "test error: \n",
      "15.63158280088695\n",
      "1000 0.4 0.30000000000000004 0.9 15.63158280088695\n",
      "test error: \n",
      "15.53131032713026\n",
      "1000 0.4 0.30000000000000004 1.0 15.53131032713026\n",
      "test error: \n",
      "13.398305041361503\n",
      "1000 0.4 0.30000000000000004 1.1 13.398305041361503\n",
      "test error: \n",
      "13.399573475371152\n",
      "1000 0.4 0.30000000000000004 1.2000000000000002 13.399573475371152\n",
      "test error: \n",
      "13.341905311762147\n",
      "1000 0.4 0.30000000000000004 1.3 13.341905311762147\n",
      "test error: \n",
      "13.27010924639916\n",
      "1000 0.4 0.30000000000000004 1.4000000000000001 13.27010924639916\n",
      "test error: \n",
      "551.6908793428481\n",
      "1000 0.4 0.4 0.0 551.6908793428481\n",
      "test error: \n",
      "11.528369133374927\n",
      "1000 0.4 0.4 0.1 11.528369133374927\n",
      "test error: \n",
      "16.437413062197024\n",
      "1000 0.4 0.4 0.2 16.437413062197024\n",
      "test error: \n",
      "16.38775263539067\n",
      "1000 0.4 0.4 0.30000000000000004 16.38775263539067\n",
      "test error: \n",
      "16.197272097017656\n",
      "1000 0.4 0.4 0.4 16.197272097017656\n",
      "test error: \n",
      "16.021516427245473\n",
      "1000 0.4 0.4 0.5 16.021516427245473\n",
      "test error: \n",
      "16.032349101967068\n",
      "1000 0.4 0.4 0.6000000000000001 16.032349101967068\n",
      "test error: \n",
      "13.827159331233354\n",
      "1000 0.4 0.4 0.7000000000000001 13.827159331233354\n",
      "test error: \n",
      "13.83043759234394\n",
      "1000 0.4 0.4 0.8 13.83043759234394\n",
      "test error: \n",
      "13.756652081524503\n",
      "1000 0.4 0.4 0.9 13.756652081524503\n",
      "test error: \n",
      "13.672002355239293\n",
      "1000 0.4 0.4 1.0 13.672002355239293\n",
      "test error: \n",
      "13.588647265764862\n",
      "1000 0.4 0.4 1.1 13.588647265764862\n",
      "test error: \n",
      "13.50726348052974\n",
      "1000 0.4 0.4 1.2000000000000002 13.50726348052974\n",
      "test error: \n",
      "13.426111596270129\n",
      "1000 0.4 0.4 1.3 13.426111596270129\n",
      "test error: \n",
      "13.330852460390208\n",
      "1000 0.4 0.4 1.4000000000000001 13.330852460390208\n",
      "test error: \n",
      "545.8120542237826\n",
      "1000 0.4 0.5 0.0 545.8120542237826\n",
      "test error: \n",
      "13.6274093183543\n",
      "1000 0.4 0.5 0.1 13.6274093183543\n",
      "test error: \n",
      "16.618581973141595\n",
      "1000 0.4 0.5 0.2 16.618581973141595\n",
      "test error: \n",
      "16.347924798723763\n",
      "1000 0.4 0.5 0.30000000000000004 16.347924798723763\n",
      "test error: \n",
      "16.126284116501562\n",
      "1000 0.4 0.5 0.4 16.126284116501562\n",
      "test error: \n",
      "15.932452600077365\n",
      "1000 0.4 0.5 0.5 15.932452600077365\n",
      "test error: \n",
      "15.761187148920213\n",
      "1000 0.4 0.5 0.6000000000000001 15.761187148920213\n",
      "test error: \n",
      "15.60764948693482\n",
      "1000 0.4 0.5 0.7000000000000001 15.60764948693482\n",
      "test error: \n",
      "15.475468885456083\n",
      "1000 0.4 0.5 0.8 15.475468885456083\n",
      "test error: \n",
      "15.529707887920262\n",
      "1000 0.4 0.5 0.9 15.529707887920262\n",
      "test error: \n",
      "15.467304281695826\n",
      "1000 0.4 0.5 1.0 15.467304281695826\n",
      "test error: \n",
      "15.499711450062465\n",
      "1000 0.4 0.5 1.1 15.499711450062465\n",
      "test error: \n",
      "15.38461898667464\n",
      "1000 0.4 0.5 1.2000000000000002 15.38461898667464\n",
      "test error: \n",
      "13.231817403301601\n",
      "1000 0.4 0.5 1.3 13.231817403301601\n",
      "test error: \n",
      "13.242545097031188\n",
      "1000 0.4 0.5 1.4000000000000001 13.242545097031188\n",
      "test error: \n",
      "478.1739288193333\n",
      "1000 0.4 0.6000000000000001 0.0 478.1739288193333\n",
      "test error: \n",
      "13.507448205983593\n",
      "1000 0.4 0.6000000000000001 0.1 13.507448205983593\n",
      "test error: \n",
      "16.43769086052885\n",
      "1000 0.4 0.6000000000000001 0.2 16.43769086052885\n",
      "test error: \n",
      "16.225481215200393\n",
      "1000 0.4 0.6000000000000001 0.30000000000000004 16.225481215200393\n",
      "test error: \n",
      "15.97334818760883\n",
      "1000 0.4 0.6000000000000001 0.4 15.97334818760883\n",
      "test error: \n",
      "15.798321011372776\n",
      "1000 0.4 0.6000000000000001 0.5 15.798321011372776\n",
      "test error: \n",
      "15.62725843421286\n",
      "1000 0.4 0.6000000000000001 0.6000000000000001 15.62725843421286\n",
      "test error: \n",
      "15.481288199689244\n",
      "1000 0.4 0.6000000000000001 0.7000000000000001 15.481288199689244\n",
      "test error: \n",
      "15.487604024347757\n",
      "1000 0.4 0.6000000000000001 0.8 15.487604024347757\n",
      "test error: \n",
      "15.406279904623533\n",
      "1000 0.4 0.6000000000000001 0.9 15.406279904623533\n",
      "test error: \n",
      "15.308620626468192\n",
      "1000 0.4 0.6000000000000001 1.0 15.308620626468192\n",
      "test error: \n",
      "15.38057778067633\n",
      "1000 0.4 0.6000000000000001 1.1 15.38057778067633\n",
      "test error: \n",
      "15.256440695855241\n",
      "1000 0.4 0.6000000000000001 1.2000000000000002 15.256440695855241\n",
      "test error: \n",
      "13.02020372658087\n",
      "1000 0.4 0.6000000000000001 1.3 13.02020372658087\n",
      "test error: \n",
      "12.928607309229237\n",
      "1000 0.4 0.6000000000000001 1.4000000000000001 12.928607309229237\n",
      "test error: \n",
      "633.1832731160106\n",
      "1000 0.4 0.7000000000000001 0.0 633.1832731160106\n",
      "test error: \n",
      "14.129835923491036\n",
      "1000 0.4 0.7000000000000001 0.1 14.129835923491036\n",
      "test error: \n",
      "16.37669615608226\n",
      "1000 0.4 0.7000000000000001 0.2 16.37669615608226\n",
      "test error: \n",
      "16.118455703226168\n",
      "1000 0.4 0.7000000000000001 0.30000000000000004 16.118455703226168\n",
      "test error: \n",
      "15.909153718221637\n",
      "1000 0.4 0.7000000000000001 0.4 15.909153718221637\n",
      "test error: \n",
      "15.650612269233385\n",
      "1000 0.4 0.7000000000000001 0.5 15.650612269233385\n",
      "test error: \n",
      "15.492565305456456\n",
      "1000 0.4 0.7000000000000001 0.6000000000000001 15.492565305456456\n",
      "test error: \n",
      "15.379633895087219\n",
      "1000 0.4 0.7000000000000001 0.7000000000000001 15.379633895087219\n",
      "test error: \n",
      "15.279276498899957\n",
      "1000 0.4 0.7000000000000001 0.8 15.279276498899957\n",
      "test error: \n",
      "15.176308200495262\n",
      "1000 0.4 0.7000000000000001 0.9 15.176308200495262\n",
      "test error: \n",
      "14.996886491175559\n",
      "1000 0.4 0.7000000000000001 1.0 14.996886491175559\n",
      "test error: \n",
      "15.676404707288032\n",
      "1000 0.4 0.7000000000000001 1.1 15.676404707288032\n",
      "test error: \n",
      "15.566816485378359\n",
      "1000 0.4 0.7000000000000001 1.2000000000000002 15.566816485378359\n",
      "test error: \n",
      "15.458283161938962\n",
      "1000 0.4 0.7000000000000001 1.3 15.458283161938962\n",
      "test error: \n",
      "15.35460102129181\n",
      "1000 0.4 0.7000000000000001 1.4000000000000001 15.35460102129181\n",
      "test error: \n",
      "45.59646629770462\n",
      "1000 0.4 0.8 0.0 45.59646629770462\n",
      "test error: \n",
      "13.611277939925172\n",
      "1000 0.4 0.8 0.1 13.611277939925172\n",
      "test error: \n",
      "16.64667249238793\n",
      "1000 0.4 0.8 0.2 16.64667249238793\n",
      "test error: \n",
      "16.34890619503461\n",
      "1000 0.4 0.8 0.30000000000000004 16.34890619503461\n",
      "test error: \n",
      "16.318658876424625\n",
      "1000 0.4 0.8 0.4 16.318658876424625\n",
      "test error: \n",
      "15.831364723763663\n",
      "1000 0.4 0.8 0.5 15.831364723763663\n",
      "test error: \n",
      "15.626354800720486\n",
      "1000 0.4 0.8 0.6000000000000001 15.626354800720486\n",
      "test error: \n",
      "15.471788554724046\n",
      "1000 0.4 0.8 0.7000000000000001 15.471788554724046\n",
      "test error: \n",
      "15.341363669036486\n",
      "1000 0.4 0.8 0.8 15.341363669036486\n",
      "test error: \n",
      "15.183332560407527\n",
      "1000 0.4 0.8 0.9 15.183332560407527\n",
      "test error: \n",
      "15.276146084278722\n",
      "1000 0.4 0.8 1.0 15.276146084278722\n",
      "test error: \n",
      "15.2002758210289\n",
      "1000 0.4 0.8 1.1 15.2002758210289\n",
      "test error: \n",
      "15.108997233425885\n",
      "1000 0.4 0.8 1.2000000000000002 15.108997233425885\n",
      "test error: \n",
      "15.458584268771364\n",
      "1000 0.4 0.8 1.3 15.458584268771364\n",
      "test error: \n",
      "15.344669394190724\n",
      "1000 0.4 0.8 1.4000000000000001 15.344669394190724\n",
      "test error: \n",
      "924.1707713250427\n",
      "1000 0.4 0.9 0.0 924.1707713250427\n",
      "test error: \n",
      "13.90324111963787\n",
      "1000 0.4 0.9 0.1 13.90324111963787\n",
      "test error: \n",
      "17.00262241324946\n",
      "1000 0.4 0.9 0.2 17.00262241324946\n",
      "test error: \n",
      "16.758761982372807\n",
      "1000 0.4 0.9 0.30000000000000004 16.758761982372807\n",
      "test error: \n",
      "16.497932497960125\n",
      "1000 0.4 0.9 0.4 16.497932497960125\n",
      "test error: \n",
      "16.104483606592083\n",
      "1000 0.4 0.9 0.5 16.104483606592083\n",
      "test error: \n",
      "16.15671223987385\n",
      "1000 0.4 0.9 0.6000000000000001 16.15671223987385\n",
      "test error: \n",
      "15.988708774175308\n",
      "1000 0.4 0.9 0.7000000000000001 15.988708774175308\n",
      "test error: \n",
      "15.773269610593339\n",
      "1000 0.4 0.9 0.8 15.773269610593339\n",
      "test error: \n",
      "16.041004856231126\n",
      "1000 0.4 0.9 0.9 16.041004856231126\n",
      "test error: \n",
      "15.901183742683962\n",
      "1000 0.4 0.9 1.0 15.901183742683962\n",
      "test error: \n",
      "15.768108220496858\n",
      "1000 0.4 0.9 1.1 15.768108220496858\n",
      "test error: \n",
      "15.642600494004874\n",
      "1000 0.4 0.9 1.2000000000000002 15.642600494004874\n",
      "test error: \n",
      "15.524121755177207\n",
      "1000 0.4 0.9 1.3 15.524121755177207\n",
      "test error: \n",
      "15.411954738358213\n",
      "1000 0.4 0.9 1.4000000000000001 15.411954738358213\n",
      "test error: \n",
      "431.2636680330112\n",
      "1000 0.5 0.0 0.0 431.2636680330112\n",
      "test error: \n",
      "14.093811028301607\n",
      "1000 0.5 0.0 0.1 14.093811028301607\n",
      "test error: \n",
      "15.746949425733566\n",
      "1000 0.5 0.0 0.2 15.746949425733566\n",
      "test error: \n",
      "16.61772349457183\n",
      "1000 0.5 0.0 0.30000000000000004 16.61772349457183\n",
      "test error: \n",
      "16.47216143719924\n",
      "1000 0.5 0.0 0.4 16.47216143719924\n",
      "test error: \n",
      "16.245885662171812\n",
      "1000 0.5 0.0 0.5 16.245885662171812\n",
      "test error: \n",
      "13.958457800738648\n",
      "1000 0.5 0.0 0.6000000000000001 13.958457800738648\n",
      "test error: \n",
      "13.833987326234723\n",
      "1000 0.5 0.0 0.7000000000000001 13.833987326234723\n",
      "test error: \n",
      "13.71595869007546\n",
      "1000 0.5 0.0 0.8 13.71595869007546\n",
      "test error: \n",
      "13.61625449546511\n",
      "1000 0.5 0.0 0.9 13.61625449546511\n",
      "test error: \n",
      "13.515249576964877\n",
      "1000 0.5 0.0 1.0 13.515249576964877\n",
      "test error: \n",
      "13.385646712632361\n",
      "1000 0.5 0.0 1.1 13.385646712632361\n",
      "test error: \n",
      "13.27722384629224\n",
      "1000 0.5 0.0 1.2000000000000002 13.27722384629224\n",
      "test error: \n",
      "15.505944412891171\n",
      "1000 0.5 0.0 1.3 15.505944412891171\n",
      "test error: \n",
      "15.380572387689675\n",
      "1000 0.5 0.0 1.4000000000000001 15.380572387689675\n",
      "test error: \n",
      "233.26073240031516\n",
      "1000 0.5 0.1 0.0 233.26073240031516\n",
      "test error: \n",
      "13.84371311407999\n",
      "1000 0.5 0.1 0.1 13.84371311407999\n",
      "test error: \n",
      "15.999665699879243\n",
      "1000 0.5 0.1 0.2 15.999665699879243\n",
      "test error: \n",
      "16.672865182631593\n",
      "1000 0.5 0.1 0.30000000000000004 16.672865182631593\n",
      "test error: \n",
      "16.485033444003612\n",
      "1000 0.5 0.1 0.4 16.485033444003612\n",
      "test error: \n",
      "16.2998473272844\n",
      "1000 0.5 0.1 0.5 16.2998473272844\n",
      "test error: \n",
      "14.090313278296664\n",
      "1000 0.5 0.1 0.6000000000000001 14.090313278296664\n",
      "test error: \n",
      "14.139644500907115\n",
      "1000 0.5 0.1 0.7000000000000001 14.139644500907115\n",
      "test error: \n",
      "14.053442495926763\n",
      "1000 0.5 0.1 0.8 14.053442495926763\n",
      "test error: \n",
      "13.949126303660139\n",
      "1000 0.5 0.1 0.9 13.949126303660139\n",
      "test error: \n",
      "13.84510378019424\n",
      "1000 0.5 0.1 1.0 13.84510378019424\n",
      "test error: \n",
      "13.742583920288393\n",
      "1000 0.5 0.1 1.1 13.742583920288393\n",
      "test error: \n",
      "13.639739417757045\n",
      "1000 0.5 0.1 1.2000000000000002 13.639739417757045\n",
      "test error: \n",
      "13.529310975651693\n",
      "1000 0.5 0.1 1.3 13.529310975651693\n",
      "test error: \n",
      "13.405348746179287\n",
      "1000 0.5 0.1 1.4000000000000001 13.405348746179287\n",
      "test error: \n",
      "1093.8951051673027\n",
      "1000 0.5 0.2 0.0 1093.8951051673027\n",
      "test error: \n",
      "12.484944506567341\n",
      "1000 0.5 0.2 0.1 12.484944506567341\n",
      "test error: \n",
      "17.091164250272797\n",
      "1000 0.5 0.2 0.2 17.091164250272797\n",
      "test error: \n",
      "16.83435844429109\n",
      "1000 0.5 0.2 0.30000000000000004 16.83435844429109\n",
      "test error: \n",
      "16.65691081449536\n",
      "1000 0.5 0.2 0.4 16.65691081449536\n",
      "test error: \n",
      "16.503099946234887\n",
      "1000 0.5 0.2 0.5 16.503099946234887\n",
      "test error: \n",
      "16.37229284560309\n",
      "1000 0.5 0.2 0.6000000000000001 16.37229284560309\n",
      "test error: \n",
      "13.97007473277637\n",
      "1000 0.5 0.2 0.7000000000000001 13.97007473277637\n",
      "test error: \n",
      "13.918171796615235\n",
      "1000 0.5 0.2 0.8 13.918171796615235\n",
      "test error: \n",
      "13.843061935538575\n",
      "1000 0.5 0.2 0.9 13.843061935538575\n",
      "test error: \n",
      "13.734493228342583\n",
      "1000 0.5 0.2 1.0 13.734493228342583\n",
      "test error: \n",
      "13.640199355079407\n",
      "1000 0.5 0.2 1.1 13.640199355079407\n",
      "test error: \n",
      "13.596275707557023\n",
      "1000 0.5 0.2 1.2000000000000002 13.596275707557023\n",
      "test error: \n",
      "13.47104624512503\n",
      "1000 0.5 0.2 1.3 13.47104624512503\n",
      "test error: \n",
      "13.383748424662292\n",
      "1000 0.5 0.2 1.4000000000000001 13.383748424662292\n",
      "test error: \n",
      "313.0269022730512\n",
      "1000 0.5 0.30000000000000004 0.0 313.0269022730512\n",
      "test error: \n",
      "12.098012808698414\n",
      "1000 0.5 0.30000000000000004 0.1 12.098012808698414\n",
      "test error: \n",
      "16.26936883732368\n",
      "1000 0.5 0.30000000000000004 0.2 16.26936883732368\n",
      "test error: \n",
      "16.782092116288293\n",
      "1000 0.5 0.30000000000000004 0.30000000000000004 16.782092116288293\n",
      "test error: \n",
      "16.638502949242447\n",
      "1000 0.5 0.30000000000000004 0.4 16.638502949242447\n",
      "test error: \n",
      "16.46757815231579\n",
      "1000 0.5 0.30000000000000004 0.5 16.46757815231579\n",
      "test error: \n",
      "16.26301670609677\n",
      "1000 0.5 0.30000000000000004 0.6000000000000001 16.26301670609677\n",
      "test error: \n",
      "16.063078528819606\n",
      "1000 0.5 0.30000000000000004 0.7000000000000001 16.063078528819606\n",
      "test error: \n",
      "15.889874798181983\n",
      "1000 0.5 0.30000000000000004 0.8 15.889874798181983\n",
      "test error: \n",
      "13.563287485953673\n",
      "1000 0.5 0.30000000000000004 0.9 13.563287485953673\n",
      "test error: \n",
      "13.618043619036667\n",
      "1000 0.5 0.30000000000000004 1.0 13.618043619036667\n",
      "test error: \n",
      "13.567861465141759\n",
      "1000 0.5 0.30000000000000004 1.1 13.567861465141759\n",
      "test error: \n",
      "13.50214891598109\n",
      "1000 0.5 0.30000000000000004 1.2000000000000002 13.50214891598109\n",
      "test error: \n",
      "13.465970763742996\n",
      "1000 0.5 0.30000000000000004 1.3 13.465970763742996\n",
      "test error: \n",
      "13.350232353787387\n",
      "1000 0.5 0.30000000000000004 1.4000000000000001 13.350232353787387\n",
      "test error: \n",
      "91.99274563077356\n",
      "1000 0.5 0.4 0.0 91.99274563077356\n",
      "test error: \n",
      "11.689200874964309\n",
      "1000 0.5 0.4 0.1 11.689200874964309\n",
      "test error: \n",
      "14.947139964098778\n",
      "1000 0.5 0.4 0.2 14.947139964098778\n",
      "test error: \n",
      "14.712087682178236\n",
      "1000 0.5 0.4 0.30000000000000004 14.712087682178236\n",
      "test error: \n",
      "14.546622322632043\n",
      "1000 0.5 0.4 0.4 14.546622322632043\n",
      "test error: \n",
      "14.378178379141715\n",
      "1000 0.5 0.4 0.5 14.378178379141715\n",
      "test error: \n",
      "14.222752528827918\n",
      "1000 0.5 0.4 0.6000000000000001 14.222752528827918\n",
      "test error: \n",
      "14.086613603333658\n",
      "1000 0.5 0.4 0.7000000000000001 14.086613603333658\n",
      "test error: \n",
      "13.966928315049229\n",
      "1000 0.5 0.4 0.8 13.966928315049229\n",
      "test error: \n",
      "13.859993628298866\n",
      "1000 0.5 0.4 0.9 13.859993628298866\n",
      "test error: \n",
      "13.763297810128895\n",
      "1000 0.5 0.4 1.0 13.763297810128895\n",
      "test error: \n",
      "13.67483394419233\n",
      "1000 0.5 0.4 1.1 13.67483394419233\n",
      "test error: \n",
      "13.593110618518242\n",
      "1000 0.5 0.4 1.2000000000000002 13.593110618518242\n",
      "test error: \n",
      "13.51422417069292\n",
      "1000 0.5 0.4 1.3 13.51422417069292\n",
      "test error: \n",
      "13.428047636693309\n",
      "1000 0.5 0.4 1.4000000000000001 13.428047636693309\n",
      "test error: \n",
      "298.6159739985959\n",
      "1000 0.5 0.5 0.0 298.6159739985959\n",
      "test error: \n",
      "13.018164628962174\n",
      "1000 0.5 0.5 0.1 13.018164628962174\n",
      "test error: \n",
      "16.807560165712964\n",
      "1000 0.5 0.5 0.2 16.807560165712964\n",
      "test error: \n",
      "16.60223787799488\n",
      "1000 0.5 0.5 0.30000000000000004 16.60223787799488\n",
      "test error: \n",
      "16.372075480219795\n",
      "1000 0.5 0.5 0.4 16.372075480219795\n",
      "test error: \n",
      "16.13457778497053\n",
      "1000 0.5 0.5 0.5 16.13457778497053\n",
      "test error: \n",
      "15.947185513647224\n",
      "1000 0.5 0.5 0.6000000000000001 15.947185513647224\n",
      "test error: \n",
      "15.775349034301938\n",
      "1000 0.5 0.5 0.7000000000000001 15.775349034301938\n",
      "test error: \n",
      "15.617621603749576\n",
      "1000 0.5 0.5 0.8 15.617621603749576\n",
      "test error: \n",
      "15.877017781337962\n",
      "1000 0.5 0.5 0.9 15.877017781337962\n",
      "test error: \n",
      "15.73981825307895\n",
      "1000 0.5 0.5 1.0 15.73981825307895\n",
      "test error: \n",
      "15.614782062288043\n",
      "1000 0.5 0.5 1.1 15.614782062288043\n",
      "test error: \n",
      "13.378350525634424\n",
      "1000 0.5 0.5 1.2000000000000002 13.378350525634424\n",
      "test error: \n",
      "15.339513583662981\n",
      "1000 0.5 0.5 1.3 15.339513583662981\n",
      "test error: \n",
      "13.231613063495505\n",
      "1000 0.5 0.5 1.4000000000000001 13.231613063495505\n",
      "test error: \n",
      "574.6899737204967\n",
      "1000 0.5 0.6000000000000001 0.0 574.6899737204967\n",
      "test error: \n",
      "13.526183379026289\n",
      "1000 0.5 0.6000000000000001 0.1 13.526183379026289\n",
      "test error: \n",
      "15.516200277467444\n",
      "1000 0.5 0.6000000000000001 0.2 15.516200277467444\n",
      "test error: \n",
      "16.27018129970201\n",
      "1000 0.5 0.6000000000000001 0.30000000000000004 16.27018129970201\n",
      "test error: \n",
      "16.049969476990558\n",
      "1000 0.5 0.6000000000000001 0.4 16.049969476990558\n",
      "test error: \n",
      "15.846355542643185\n",
      "1000 0.5 0.6000000000000001 0.5 15.846355542643185\n",
      "test error: \n",
      "15.654058248747793\n",
      "1000 0.5 0.6000000000000001 0.6000000000000001 15.654058248747793\n",
      "test error: \n",
      "15.510971394900006\n",
      "1000 0.5 0.6000000000000001 0.7000000000000001 15.510971394900006\n",
      "test error: \n",
      "15.530453811142426\n",
      "1000 0.5 0.6000000000000001 0.8 15.530453811142426\n",
      "test error: \n",
      "15.67716779281855\n",
      "1000 0.5 0.6000000000000001 0.9 15.67716779281855\n",
      "test error: \n",
      "15.545942784862538\n",
      "1000 0.5 0.6000000000000001 1.0 15.545942784862538\n",
      "test error: \n",
      "13.303203169378474\n",
      "1000 0.5 0.6000000000000001 1.1 13.303203169378474\n",
      "test error: \n",
      "13.225664460981054\n",
      "1000 0.5 0.6000000000000001 1.2000000000000002 13.225664460981054\n",
      "test error: \n",
      "13.147214486875647\n",
      "1000 0.5 0.6000000000000001 1.3 13.147214486875647\n",
      "test error: \n",
      "13.054447467633224\n",
      "1000 0.5 0.6000000000000001 1.4000000000000001 13.054447467633224\n",
      "test error: \n",
      "389.71099906087386\n",
      "1000 0.5 0.7000000000000001 0.0 389.71099906087386\n",
      "test error: \n",
      "13.815304700337306\n",
      "1000 0.5 0.7000000000000001 0.1 13.815304700337306\n",
      "test error: \n",
      "16.418042679922937\n",
      "1000 0.5 0.7000000000000001 0.2 16.418042679922937\n",
      "test error: \n",
      "16.190610908103892\n",
      "1000 0.5 0.7000000000000001 0.30000000000000004 16.190610908103892\n",
      "test error: \n",
      "15.221040577048328\n",
      "1000 0.5 0.7000000000000001 0.4 15.221040577048328\n",
      "test error: \n",
      "15.720600489737516\n",
      "1000 0.5 0.7000000000000001 0.5 15.720600489737516\n",
      "test error: \n",
      "15.602343378544612\n",
      "1000 0.5 0.7000000000000001 0.6000000000000001 15.602343378544612\n",
      "test error: \n",
      "15.491508017166076\n",
      "1000 0.5 0.7000000000000001 0.7000000000000001 15.491508017166076\n",
      "test error: \n",
      "15.376064275837138\n",
      "1000 0.5 0.7000000000000001 0.8 15.376064275837138\n",
      "test error: \n",
      "15.265718603553653\n",
      "1000 0.5 0.7000000000000001 0.9 15.265718603553653\n",
      "test error: \n",
      "15.148381832516357\n",
      "1000 0.5 0.7000000000000001 1.0 15.148381832516357\n",
      "test error: \n",
      "15.770556868943983\n",
      "1000 0.5 0.7000000000000001 1.1 15.770556868943983\n",
      "test error: \n",
      "15.65461229464175\n",
      "1000 0.5 0.7000000000000001 1.2000000000000002 15.65461229464175\n",
      "test error: \n",
      "15.542664399148663\n",
      "1000 0.5 0.7000000000000001 1.3 15.542664399148663\n",
      "test error: \n",
      "15.435473301965152\n",
      "1000 0.5 0.7000000000000001 1.4000000000000001 15.435473301965152\n",
      "test error: \n",
      "570.5992893787065\n",
      "1000 0.5 0.8 0.0 570.5992893787065\n",
      "test error: \n",
      "13.482232853268377\n",
      "1000 0.5 0.8 0.1 13.482232853268377\n",
      "test error: \n",
      "16.847171000781593\n",
      "1000 0.5 0.8 0.2 16.847171000781593\n",
      "test error: \n",
      "16.9087395788923\n",
      "1000 0.5 0.8 0.30000000000000004 16.9087395788923\n",
      "test error: \n",
      "16.644179439199764\n",
      "1000 0.5 0.8 0.4 16.644179439199764\n",
      "test error: \n",
      "16.39767837567591\n",
      "1000 0.5 0.8 0.5 16.39767837567591\n",
      "test error: \n",
      "16.173873044056442\n",
      "1000 0.5 0.8 0.6000000000000001 16.173873044056442\n",
      "test error: \n",
      "15.686991767608344\n",
      "1000 0.5 0.8 0.7000000000000001 15.686991767608344\n",
      "test error: \n",
      "15.57513851940986\n",
      "1000 0.5 0.8 0.8 15.57513851940986\n",
      "test error: \n",
      "15.421790435526994\n",
      "1000 0.5 0.8 0.9 15.421790435526994\n",
      "test error: \n",
      "15.340086311108019\n",
      "1000 0.5 0.8 1.0 15.340086311108019\n",
      "test error: \n",
      "15.418489525011324\n",
      "1000 0.5 0.8 1.1 15.418489525011324\n",
      "test error: \n",
      "15.62928447295641\n",
      "1000 0.5 0.8 1.2000000000000002 15.62928447295641\n",
      "test error: \n",
      "15.368047019258288\n",
      "1000 0.5 0.8 1.3 15.368047019258288\n",
      "test error: \n",
      "15.132364939347537\n",
      "1000 0.5 0.8 1.4000000000000001 15.132364939347537\n",
      "test error: \n",
      "361.62979393566343\n",
      "1000 0.5 0.9 0.0 361.62979393566343\n",
      "test error: \n",
      "13.772850329033025\n",
      "1000 0.5 0.9 0.1 13.772850329033025\n",
      "test error: \n",
      "17.041027418317242\n",
      "1000 0.5 0.9 0.2 17.041027418317242\n",
      "test error: \n",
      "16.794180195145078\n",
      "1000 0.5 0.9 0.30000000000000004 16.794180195145078\n",
      "test error: \n",
      "16.565409379503603\n",
      "1000 0.5 0.9 0.4 16.565409379503603\n",
      "test error: \n",
      "16.36430667485013\n",
      "1000 0.5 0.9 0.5 16.36430667485013\n",
      "test error: \n",
      "16.181691241941515\n",
      "1000 0.5 0.9 0.6000000000000001 16.181691241941515\n",
      "test error: \n",
      "16.390155552752233\n",
      "1000 0.5 0.9 0.7000000000000001 16.390155552752233\n",
      "test error: \n",
      "16.23449021259287\n",
      "1000 0.5 0.9 0.8 16.23449021259287\n",
      "test error: \n",
      "16.080086470835578\n",
      "1000 0.5 0.9 0.9 16.080086470835578\n",
      "test error: \n",
      "15.934777152896803\n",
      "1000 0.5 0.9 1.0 15.934777152896803\n",
      "test error: \n",
      "15.7986187442008\n",
      "1000 0.5 0.9 1.1 15.7986187442008\n",
      "test error: \n",
      "15.670706228441729\n",
      "1000 0.5 0.9 1.2000000000000002 15.670706228441729\n",
      "test error: \n",
      "15.5500936730253\n",
      "1000 0.5 0.9 1.3 15.5500936730253\n",
      "test error: \n",
      "15.435928164016346\n",
      "1000 0.5 0.9 1.4000000000000001 15.435928164016346\n",
      "test error: \n",
      "370.32446828313203\n",
      "1000 0.6000000000000001 0.0 0.0 370.32446828313203\n",
      "test error: \n",
      "14.242096722702877\n",
      "1000 0.6000000000000001 0.0 0.1 14.242096722702877\n",
      "test error: \n",
      "15.472260579541565\n",
      "1000 0.6000000000000001 0.0 0.2 15.472260579541565\n",
      "test error: \n",
      "16.692045825097278\n",
      "1000 0.6000000000000001 0.0 0.30000000000000004 16.692045825097278\n",
      "test error: \n",
      "16.52706761078102\n",
      "1000 0.6000000000000001 0.0 0.4 16.52706761078102\n",
      "test error: \n",
      "16.330701585536186\n",
      "1000 0.6000000000000001 0.0 0.5 16.330701585536186\n",
      "test error: \n",
      "14.049594840531297\n",
      "1000 0.6000000000000001 0.0 0.6000000000000001 14.049594840531297\n",
      "test error: \n",
      "13.92505266782132\n",
      "1000 0.6000000000000001 0.0 0.7000000000000001 13.92505266782132\n",
      "test error: \n",
      "13.804308628027629\n",
      "1000 0.6000000000000001 0.0 0.8 13.804308628027629\n",
      "test error: \n",
      "13.699602386601937\n",
      "1000 0.6000000000000001 0.0 0.9 13.699602386601937\n",
      "test error: \n",
      "13.563186264464411\n",
      "1000 0.6000000000000001 0.0 1.0 13.563186264464411\n",
      "test error: \n",
      "13.473330631773724\n",
      "1000 0.6000000000000001 0.0 1.1 13.473330631773724\n",
      "test error: \n",
      "15.67545011309899\n",
      "1000 0.6000000000000001 0.0 1.2000000000000002 15.67545011309899\n",
      "test error: \n",
      "15.541698009777855\n",
      "1000 0.6000000000000001 0.0 1.3 15.541698009777855\n",
      "test error: \n",
      "15.409491295012876\n",
      "1000 0.6000000000000001 0.0 1.4000000000000001 15.409491295012876\n",
      "test error: \n",
      "180.71791201134423\n",
      "1000 0.6000000000000001 0.1 0.0 180.71791201134423\n",
      "test error: \n",
      "12.446538635457868\n",
      "1000 0.6000000000000001 0.1 0.1 12.446538635457868\n",
      "test error: \n",
      "16.164339634780145\n",
      "1000 0.6000000000000001 0.1 0.2 16.164339634780145\n",
      "test error: \n",
      "16.779457275543983\n",
      "1000 0.6000000000000001 0.1 0.30000000000000004 16.779457275543983\n",
      "test error: \n",
      "16.614856274361415\n",
      "1000 0.6000000000000001 0.1 0.4 16.614856274361415\n",
      "test error: \n",
      "14.394044236799388\n",
      "1000 0.6000000000000001 0.1 0.5 14.394044236799388\n",
      "test error: \n",
      "14.416086023372696\n",
      "1000 0.6000000000000001 0.1 0.6000000000000001 14.416086023372696\n",
      "test error: \n",
      "14.289895157549253\n",
      "1000 0.6000000000000001 0.1 0.7000000000000001 14.289895157549253\n",
      "test error: \n",
      "14.165011217524622\n",
      "1000 0.6000000000000001 0.1 0.8 14.165011217524622\n",
      "test error: \n",
      "14.04799304763267\n",
      "1000 0.6000000000000001 0.1 0.9 14.04799304763267\n",
      "test error: \n",
      "13.936032162025404\n",
      "1000 0.6000000000000001 0.1 1.0 13.936032162025404\n",
      "test error: \n",
      "13.824201475469588\n",
      "1000 0.6000000000000001 0.1 1.1 13.824201475469588\n",
      "test error: \n",
      "13.72608591911489\n",
      "1000 0.6000000000000001 0.1 1.2000000000000002 13.72608591911489\n",
      "test error: \n",
      "13.596372241083868\n",
      "1000 0.6000000000000001 0.1 1.3 13.596372241083868\n",
      "test error: \n",
      "13.482324311745105\n",
      "1000 0.6000000000000001 0.1 1.4000000000000001 13.482324311745105\n",
      "test error: \n",
      "98.43280546879379\n",
      "1000 0.6000000000000001 0.2 0.0 98.43280546879379\n",
      "test error: \n",
      "15.650985192407958\n",
      "1000 0.6000000000000001 0.2 0.1 15.650985192407958\n",
      "test error: \n",
      "17.191034302297375\n",
      "1000 0.6000000000000001 0.2 0.2 17.191034302297375\n",
      "test error: \n",
      "17.047260274248124\n",
      "1000 0.6000000000000001 0.2 0.30000000000000004 17.047260274248124\n",
      "test error: \n",
      "16.938861783328594\n",
      "1000 0.6000000000000001 0.2 0.4 16.938861783328594\n",
      "test error: \n",
      "14.524822567954136\n",
      "1000 0.6000000000000001 0.2 0.5 14.524822567954136\n",
      "test error: \n",
      "14.420244909915967\n",
      "1000 0.6000000000000001 0.2 0.6000000000000001 14.420244909915967\n",
      "test error: \n",
      "14.274369932029007\n",
      "1000 0.6000000000000001 0.2 0.7000000000000001 14.274369932029007\n",
      "test error: \n",
      "14.138572953174595\n",
      "1000 0.6000000000000001 0.2 0.8 14.138572953174595\n",
      "test error: \n",
      "14.01050903476419\n",
      "1000 0.6000000000000001 0.2 0.9 14.01050903476419\n",
      "test error: \n",
      "13.87785383866968\n",
      "1000 0.6000000000000001 0.2 1.0 13.87785383866968\n",
      "test error: \n",
      "13.788839202179515\n",
      "1000 0.6000000000000001 0.2 1.1 13.788839202179515\n",
      "test error: \n",
      "13.69327668543709\n",
      "1000 0.6000000000000001 0.2 1.2000000000000002 13.69327668543709\n",
      "test error: \n",
      "13.551847179794915\n",
      "1000 0.6000000000000001 0.2 1.3 13.551847179794915\n",
      "test error: \n",
      "13.440788715022892\n",
      "1000 0.6000000000000001 0.2 1.4000000000000001 13.440788715022892\n",
      "test error: \n",
      "133.8956561599111\n",
      "1000 0.6000000000000001 0.30000000000000004 0.0 133.8956561599111\n",
      "test error: \n",
      "12.229763220248461\n",
      "1000 0.6000000000000001 0.30000000000000004 0.1 12.229763220248461\n",
      "test error: \n",
      "15.998270728881863\n",
      "1000 0.6000000000000001 0.30000000000000004 0.2 15.998270728881863\n",
      "test error: \n",
      "17.12021260501653\n",
      "1000 0.6000000000000001 0.30000000000000004 0.30000000000000004 17.12021260501653\n",
      "test error: \n",
      "16.965117959246196\n",
      "1000 0.6000000000000001 0.30000000000000004 0.4 16.965117959246196\n",
      "test error: \n",
      "16.773104814661682\n",
      "1000 0.6000000000000001 0.30000000000000004 0.5 16.773104814661682\n",
      "test error: \n",
      "14.061426746384852\n",
      "1000 0.6000000000000001 0.30000000000000004 0.6000000000000001 14.061426746384852\n",
      "test error: \n",
      "14.142108291387055\n",
      "1000 0.6000000000000001 0.30000000000000004 0.7000000000000001 14.142108291387055\n",
      "test error: \n",
      "14.051065682666062\n",
      "1000 0.6000000000000001 0.30000000000000004 0.8 14.051065682666062\n",
      "test error: \n",
      "13.953638420638244\n",
      "1000 0.6000000000000001 0.30000000000000004 0.9 13.953638420638244\n",
      "test error: \n",
      "13.857547526064435\n",
      "1000 0.6000000000000001 0.30000000000000004 1.0 13.857547526064435\n",
      "test error: \n",
      "13.749219870321392\n",
      "1000 0.6000000000000001 0.30000000000000004 1.1 13.749219870321392\n",
      "test error: \n",
      "13.632821452156854\n",
      "1000 0.6000000000000001 0.30000000000000004 1.2000000000000002 13.632821452156854\n",
      "test error: \n",
      "13.580787293221233\n",
      "1000 0.6000000000000001 0.30000000000000004 1.3 13.580787293221233\n",
      "test error: \n",
      "13.42741151789456\n",
      "1000 0.6000000000000001 0.30000000000000004 1.4000000000000001 13.42741151789456\n",
      "test error: \n",
      "311.69130944028643\n",
      "1000 0.6000000000000001 0.4 0.0 311.69130944028643\n",
      "test error: \n",
      "12.795347429314631\n",
      "1000 0.6000000000000001 0.4 0.1 12.795347429314631\n",
      "test error: \n",
      "15.03654960956499\n",
      "1000 0.6000000000000001 0.4 0.2 15.03654960956499\n",
      "test error: \n",
      "14.83634120037297\n",
      "1000 0.6000000000000001 0.4 0.30000000000000004 14.83634120037297\n",
      "test error: \n",
      "14.620216855353991\n",
      "1000 0.6000000000000001 0.4 0.4 14.620216855353991\n",
      "test error: \n",
      "14.436606384969165\n",
      "1000 0.6000000000000001 0.4 0.5 14.436606384969165\n",
      "test error: \n",
      "14.283046530333314\n",
      "1000 0.6000000000000001 0.4 0.6000000000000001 14.283046530333314\n",
      "test error: \n",
      "14.151764264999137\n",
      "1000 0.6000000000000001 0.4 0.7000000000000001 14.151764264999137\n",
      "test error: \n",
      "14.037381502983113\n",
      "1000 0.6000000000000001 0.4 0.8 14.037381502983113\n",
      "test error: \n",
      "13.935933535338618\n",
      "1000 0.6000000000000001 0.4 0.9 13.935933535338618\n",
      "test error: \n",
      "13.844025940166944\n",
      "1000 0.6000000000000001 0.4 1.0 13.844025940166944\n",
      "test error: \n",
      "13.75932012296603\n",
      "1000 0.6000000000000001 0.4 1.1 13.75932012296603\n",
      "test error: \n",
      "13.680217380485368\n",
      "1000 0.6000000000000001 0.4 1.2000000000000002 13.680217380485368\n",
      "test error: \n",
      "13.597869490673151\n",
      "1000 0.6000000000000001 0.4 1.3 13.597869490673151\n",
      "test error: \n",
      "13.487951106696713\n",
      "1000 0.6000000000000001 0.4 1.4000000000000001 13.487951106696713\n",
      "test error: \n",
      "294.5702471956917\n",
      "1000 0.6000000000000001 0.5 0.0 294.5702471956917\n",
      "test error: \n",
      "12.55571499703597\n",
      "1000 0.6000000000000001 0.5 0.1 12.55571499703597\n",
      "test error: \n",
      "14.85484078640878\n",
      "1000 0.6000000000000001 0.5 0.2 14.85484078640878\n",
      "test error: \n",
      "14.752744480910438\n",
      "1000 0.6000000000000001 0.5 0.30000000000000004 14.752744480910438\n",
      "test error: \n",
      "14.572649097026343\n",
      "1000 0.6000000000000001 0.5 0.4 14.572649097026343\n",
      "test error: \n",
      "14.40325342129093\n",
      "1000 0.6000000000000001 0.5 0.5 14.40325342129093\n",
      "test error: \n",
      "14.25573002844216\n",
      "1000 0.6000000000000001 0.5 0.6000000000000001 14.25573002844216\n",
      "test error: \n",
      "14.125953206838751\n",
      "1000 0.6000000000000001 0.5 0.7000000000000001 14.125953206838751\n",
      "test error: \n",
      "14.009714610667697\n",
      "1000 0.6000000000000001 0.5 0.8 14.009714610667697\n",
      "test error: \n",
      "13.904615193906833\n",
      "1000 0.6000000000000001 0.5 0.9 13.904615193906833\n",
      "test error: \n",
      "13.808167022653134\n",
      "1000 0.6000000000000001 0.5 1.0 13.808167022653134\n",
      "test error: \n",
      "13.717072773068843\n",
      "1000 0.6000000000000001 0.5 1.1 13.717072773068843\n",
      "test error: \n",
      "13.62033596410414\n",
      "1000 0.6000000000000001 0.5 1.2000000000000002 13.62033596410414\n",
      "test error: \n",
      "13.2813366239705\n",
      "1000 0.6000000000000001 0.5 1.3 13.2813366239705\n",
      "test error: \n",
      "13.224514531764612\n",
      "1000 0.6000000000000001 0.5 1.4000000000000001 13.224514531764612\n",
      "test error: \n",
      "215.83919383082576\n",
      "1000 0.6000000000000001 0.6000000000000001 0.0 215.83919383082576\n",
      "test error: \n",
      "12.287020587775833\n",
      "1000 0.6000000000000001 0.6000000000000001 0.1 12.287020587775833\n",
      "test error: \n",
      "14.838669985193604\n",
      "1000 0.6000000000000001 0.6000000000000001 0.2 14.838669985193604\n",
      "test error: \n",
      "16.370572382593018\n",
      "1000 0.6000000000000001 0.6000000000000001 0.30000000000000004 16.370572382593018\n",
      "test error: \n",
      "16.110593224954055\n",
      "1000 0.6000000000000001 0.6000000000000001 0.4 16.110593224954055\n",
      "test error: \n",
      "15.903023579575871\n",
      "1000 0.6000000000000001 0.6000000000000001 0.5 15.903023579575871\n",
      "test error: \n",
      "15.668447099285844\n",
      "1000 0.6000000000000001 0.6000000000000001 0.6000000000000001 15.668447099285844\n",
      "test error: \n",
      "15.993371329275641\n",
      "1000 0.6000000000000001 0.6000000000000001 0.7000000000000001 15.993371329275641\n",
      "test error: \n",
      "15.861694597326757\n",
      "1000 0.6000000000000001 0.6000000000000001 0.8 15.861694597326757\n",
      "test error: \n",
      "13.636342428428318\n",
      "1000 0.6000000000000001 0.6000000000000001 0.9 13.636342428428318\n",
      "test error: \n",
      "13.547583209979067\n",
      "1000 0.6000000000000001 0.6000000000000001 1.0 13.547583209979067\n",
      "test error: \n",
      "13.458888428788477\n",
      "1000 0.6000000000000001 0.6000000000000001 1.1 13.458888428788477\n",
      "test error: \n",
      "13.370960925979873\n",
      "1000 0.6000000000000001 0.6000000000000001 1.2000000000000002 13.370960925979873\n",
      "test error: \n",
      "13.274025475223182\n",
      "1000 0.6000000000000001 0.6000000000000001 1.3 13.274025475223182\n",
      "test error: \n",
      "15.37960161748389\n",
      "1000 0.6000000000000001 0.6000000000000001 1.4000000000000001 15.37960161748389\n",
      "test error: \n",
      "312.5930851760059\n",
      "1000 0.6000000000000001 0.7000000000000001 0.0 312.5930851760059\n",
      "test error: \n",
      "12.428239907668582\n",
      "1000 0.6000000000000001 0.7000000000000001 0.1 12.428239907668582\n",
      "test error: \n",
      "15.745950164621464\n",
      "1000 0.6000000000000001 0.7000000000000001 0.2 15.745950164621464\n",
      "test error: \n",
      "16.3116408691398\n",
      "1000 0.6000000000000001 0.7000000000000001 0.30000000000000004 16.3116408691398\n",
      "test error: \n",
      "15.931198448615866\n",
      "1000 0.6000000000000001 0.7000000000000001 0.4 15.931198448615866\n"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\mackey.ipynb Cell 4\u001b[0m line \u001b[0;36m3\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=30'>31</a>\u001b[0m \u001b[39mfor\u001b[39;00m sparsity \u001b[39min\u001b[39;00m np\u001b[39m.\u001b[39marange(\u001b[39m0\u001b[39m,\u001b[39m1\u001b[39m,\u001b[39m0.1\u001b[39m):\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=31'>32</a>\u001b[0m   \u001b[39mfor\u001b[39;00m noise \u001b[39min\u001b[39;00m np\u001b[39m.\u001b[39marange(\u001b[39m0\u001b[39m,\u001b[39m1.5\u001b[39m,\u001b[39m0.1\u001b[39m):\n\u001b[1;32m---> <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=32'>33</a>\u001b[0m      error \u001b[39m=\u001b[39m once(n_reservoir,spectral_radius,sparsity,noise)\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=33'>34</a>\u001b[0m      \u001b[39mprint\u001b[39m(n_reservoir,spectral_radius,sparsity,noise,error)\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=34'>35</a>\u001b[0m      \u001b[39m# 打开文件并写入数据  \u001b[39;00m\n",
      "\u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\mackey.ipynb Cell 4\u001b[0m line \u001b[0;36m2\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=19'>20</a>\u001b[0m trainlen \u001b[39m=\u001b[39m \u001b[39m8000\u001b[39m\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=20'>21</a>\u001b[0m future \u001b[39m=\u001b[39m \u001b[39m2000\u001b[39m\n\u001b[1;32m---> <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=21'>22</a>\u001b[0m pred_training \u001b[39m=\u001b[39m esn\u001b[39m.\u001b[39;49mfit(np\u001b[39m.\u001b[39;49mones(trainlen),data[:trainlen])\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=22'>23</a>\u001b[0m prediction \u001b[39m=\u001b[39m esn\u001b[39m.\u001b[39mpredict(np\u001b[39m.\u001b[39mones(future))\n\u001b[0;32m     <a href='vscode-notebook-cell:/e%3A/%E8%AE%BA%E6%96%87%E7%A0%94%E7%A9%B6/Reservoir_Computing/pyESN/mackey.ipynb#W3sZmlsZQ%3D%3D?line=23'>24</a>\u001b[0m error \u001b[39m=\u001b[39m \u001b[39mstr\u001b[39m(np\u001b[39m.\u001b[39msqrt(np\u001b[39m.\u001b[39mmean((prediction\u001b[39m.\u001b[39mflatten() \u001b[39m-\u001b[39m data[trainlen:trainlen\u001b[39m+\u001b[39mfuture])\u001b[39m*\u001b[39m\u001b[39m*\u001b[39m\u001b[39m2\u001b[39m)))\n",
      "File \u001b[1;32me:\\论文研究\\Reservoir_Computing\\pyESN\\pyESN.py:192\u001b[0m, in \u001b[0;36mESN.fit\u001b[1;34m(self, inputs, outputs, inspect)\u001b[0m\n\u001b[0;32m    190\u001b[0m extended_states \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mhstack((states, inputs_scaled))\n\u001b[0;32m    191\u001b[0m \u001b[39m# Solve for W_out:\u001b[39;00m\n\u001b[1;32m--> 192\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mW_out \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mdot(np\u001b[39m.\u001b[39;49mlinalg\u001b[39m.\u001b[39;49mpinv(extended_states[transient:, :]),\n\u001b[0;32m    193\u001b[0m                     \u001b[39mself\u001b[39m\u001b[39m.\u001b[39minverse_out_activation(teachers_scaled[transient:, :]))\u001b[39m.\u001b[39mT\n\u001b[0;32m    195\u001b[0m \u001b[39m# remember the last state for later:\u001b[39;00m\n\u001b[0;32m    196\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlaststate \u001b[39m=\u001b[39m states[\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m, :]\n",
      "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\numpy\\linalg\\linalg.py:2022\u001b[0m, in \u001b[0;36mpinv\u001b[1;34m(a, rcond, hermitian)\u001b[0m\n\u001b[0;32m   2020\u001b[0m     \u001b[39mreturn\u001b[39;00m wrap(res)\n\u001b[0;32m   2021\u001b[0m a \u001b[39m=\u001b[39m a\u001b[39m.\u001b[39mconjugate()\n\u001b[1;32m-> 2022\u001b[0m u, s, vt \u001b[39m=\u001b[39m svd(a, full_matrices\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m, hermitian\u001b[39m=\u001b[39;49mhermitian)\n\u001b[0;32m   2024\u001b[0m \u001b[39m# discard small singular values\u001b[39;00m\n\u001b[0;32m   2025\u001b[0m cutoff \u001b[39m=\u001b[39m rcond[\u001b[39m.\u001b[39m\u001b[39m.\u001b[39m\u001b[39m.\u001b[39m, newaxis] \u001b[39m*\u001b[39m amax(s, axis\u001b[39m=\u001b[39m\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m, keepdims\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m)\n",
      "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\numpy\\linalg\\linalg.py:1681\u001b[0m, in \u001b[0;36msvd\u001b[1;34m(a, full_matrices, compute_uv, hermitian)\u001b[0m\n\u001b[0;32m   1678\u001b[0m         gufunc \u001b[39m=\u001b[39m _umath_linalg\u001b[39m.\u001b[39msvd_n_s\n\u001b[0;32m   1680\u001b[0m signature \u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39mD->DdD\u001b[39m\u001b[39m'\u001b[39m \u001b[39mif\u001b[39;00m isComplexType(t) \u001b[39melse\u001b[39;00m \u001b[39m'\u001b[39m\u001b[39md->ddd\u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m-> 1681\u001b[0m u, s, vh \u001b[39m=\u001b[39m gufunc(a, signature\u001b[39m=\u001b[39;49msignature, extobj\u001b[39m=\u001b[39;49mextobj)\n\u001b[0;32m   1682\u001b[0m u \u001b[39m=\u001b[39m u\u001b[39m.\u001b[39mastype(result_t, copy\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m)\n\u001b[0;32m   1683\u001b[0m s \u001b[39m=\u001b[39m s\u001b[39m.\u001b[39mastype(_realType(result_t), copy\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m)\n",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from pyESN import ESN\n",
    "n_reservoir =1800\n",
    "spectral_radius = 1.5\n",
    "sparsity=0.6,\n",
    "noise=0.5\n",
    "random_state=42\n",
    "\n",
    "data = np.load('./data/hundun.npy') #  http://minds.jacobs-university.de/mantas/code\n",
    "print('data',data)\n",
    "\n",
    "def once(n_reservoir,spectral_radius,sparsity,noise):\n",
    "    esn = ESN(n_inputs = 1,\n",
    "          n_outputs = 1,\n",
    "          n_reservoir = n_reservoir,\n",
    "          spectral_radius = spectral_radius,\n",
    "          sparsity=sparsity,\n",
    "          noise=noise,\n",
    "          random_state=42)\n",
    "    trainlen = 8000\n",
    "    future = 2000\n",
    "    pred_training = esn.fit(np.ones(trainlen),data[:trainlen])\n",
    "    prediction = esn.predict(np.ones(future))\n",
    "    error = str(np.sqrt(np.mean((prediction.flatten() - data[trainlen:trainlen+future])**2)))\n",
    "    print(\"test error: \\n\"+str(np.sqrt(np.mean((prediction.flatten() - data[trainlen:trainlen+future])**2))))\n",
    "    return error\n",
    "\n",
    "\n",
    "for n_reservoir in np.arange(1000,5000,500):\n",
    "    for spectral_radius in np.arange(0,1.5,0.1):\n",
    "       for sparsity in np.arange(0,1,0.1):\n",
    "         for noise in np.arange(0,1.5,0.1):\n",
    "            error = once(n_reservoir,spectral_radius,sparsity,noise)\n",
    "            print(n_reservoir,spectral_radius,sparsity,noise,error)\n",
    "            # 打开文件并写入数据  \n",
    "            with open('example.txt', 'a') as file:  \n",
    "              file.write(f\"{n_reservoir},{spectral_radius},{sparsity},{noise},{error}\\n\")  \n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
